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谢谢大家,不喜勿喷,以上内容参考菜鸟教程。