你是否很讨厌安卓系统自带的Toast风格?是的话那就来自定义吧,只需三步轻轻松松搞定。
先来看看效果图:
第一步: 定义背景toast_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/bg_gray" />
<stroke
android:width="1dp"
android:color="@color/stroke_gray" />
<corners android:radius="5dp" />
</shape>
第二步:定义布局custom_toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/toast_bg" >
<TextView
android:id="@+id/toast_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:maxLines="2"
android:padding="@dimen/text_margin"
android:textColor="@color/text_black"
android:textSize="@dimen/hint_textsize" />
</LinearLayout>
第三步:自定义Toast类CustomToast
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.free.ui.R;
public class CustomToast {
private static Toast toast=null;
public static void showShortToast(Context context, String message) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// 获取自定义布局实例
View view = inflater.inflate(R.layout.custom_toast, null);
// 设置提示内容
TextView text = (TextView) view.findViewById(R.id.toast_message);
text.setText(message);
// 确保只有一个Toast实例创建
if (toast == null) {
toast = new Toast(context);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
}
// 加载自定义布局
toast.setView(view);
toast.show();
}
}
在需要使用Toast地方,调用CustomToast.showShortToast()方法就行了,很简单吧?