2018-11-22 Toast的自定义

2018-11-22  本文已影响0人  肥得流油

提莫队长正在待命!——Toast的自定义

预期目标效果如图:提莫队长正在送命!


image.png

FirstBlood:自定义圆角背景
新建一个xml:bg_Toast.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 设置透明背景色 -->
    <solid android:color="#BADB66" />
    <!-- 设置一个黑色边框 -->
    <stroke
        android:width="1px"
        android:color="#FFFFFF" />
    <!-- 设置四个圆角的半径 -->
    <corners
        android:bottomLeftRadius="50px"
        android:bottomRightRadius="50px"
        android:topLeftRadius="50px"
        android:topRightRadius="50px" />
    <!-- 设置一下边距,让空间大一点 -->
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />
</shape>

DoubleKill:设计布局文件
新建一个layout下的xml:timo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lly_toast"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg_toast"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/img_logo"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="2dp"
        android:src="@mipmap/xiaonuo" />

    <TextView
        android:id="@+id/tv_msg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:textSize="20sp" />

</LinearLayout>

TrebleKill:再定义一个layout来使用和显示Toast。
先来一个button:

 <Button
    android:id="@+id/btn_toast1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Toast1"
    />


在相应的java文件中初始化这个button,并监听点击事件。


public class tryActivityextends Activityimplements View.OnClickListener {

    private Buttonbtn_Toast1;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_try);

        initToastTest();

    }

private void initToastTest() {

btn_Toast1=(Button)findViewById(R.id.btn_toast1);

        btn_Toast1.setOnClickListener(this);

    }

@Override

    public void onClick(View view) {

switch (view.getId()){

case R.id.btn_toast1:

Toast.makeText(this,"提莫队长正在待命!",Toast.LENGTH_SHORT).show();
/*这个地方待会儿可以替换为tryToast("提莫队长正在待命!");*/

break;

                default:

Log.i(TAG, "onClick: ");

break;

        }

}

}

咦!好像不对啊,这更我们之前的操作没有关系嘛!
稍等,提莫队长正在待命!我们还需要将自定义的timo.xml与点击动作绑定在一起!

搞一个新的方法,将Toast操作封装在里面。我们只需要传入值就可以完成Toast操作啦!


private void tryToast(String str)

{

LayoutInflater inflater = getLayoutInflater();

        View view = inflater.inflate(R.layout.timo,

                (ViewGroup) findViewById(R.id.lt_timo));

        TextView tv_msg = (TextView) view.findViewById(R.id.tv_msg);

        tv_msg.setText(str);

        Toast toast =new Toast(this);

        toast.setGravity(Gravity.CENTER, 0, 0);

        toast.setDuration(Toast.LENGTH_SHORT);

        toast.setView(view);

        toast.show();

    }

最后!完成了上面的操作,提莫队长就随时待命啦!

附提莫队长图:

image

谢谢大家,不喜勿喷,以上内容参考菜鸟教程

上一篇下一篇

猜你喜欢

热点阅读