在Android程序設(shè)計(jì)中,有時(shí)候我們需要自定義Toast提示信息的背景顏色和邊框顏色,該怎么做呢?例如下圖:
默認(rèn)的Toast無法實(shí)現(xiàn)我們所需要的效果,那么我們只能自定義布局文件,另外Toast的背景形狀是圓角的,所以我們需要自定義Shape文件。 步驟如下: 1、在drawable-hdpi下新建一個(gè)my_border.xml文件 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas./apk/res/android">
<solid android:color="#ff0000ff"/> <stroke android:width="1dp" android:color="#FFFFFFFF" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="4dp" /> </shape>
2、 新建一個(gè)布局文件my_toast.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas./apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/my_border"> <TextView android:layout_width="wrap_content" android:id="@+id/TextViewInfo" android:layout_height="wrap_content" android:text="這是一個(gè)自定義背景顏色的提示框" android:layout_gravity="center_vertical" android:textColor="#ff00ff00"></TextView> </LinearLayout> 在此文件中把該布局的背景設(shè)為第一步時(shí)建立的Shape文件。
3、 Java調(diào)用代碼:
View toastRoot = getLayoutInflater().inflate(R.layout.my_toast, null); Toast toast=new Toast(getApplicationContext()); toast.setView(toastRoot); TextView tv=(TextView)toastRoot.findViewById(R.id.TextViewInfo); tv.setText("說明:這是一個(gè)自定義邊框和底色的提示框。"); toast.show();
|
|