美文网首页
2018-11-22 Toast的自定义

2018-11-22 Toast的自定义

作者: 肥得流油 | 来源:发表于2018-11-22 09:52 被阅读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

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

    相关文章

      网友评论

          本文标题:2018-11-22 Toast的自定义

          本文链接:https://www.haomeiwen.com/subject/ymvkqqtx.html