其实自定义toast很简单,先上图
在看代码:
Toast toast = new Toast(getActivity());
toast.setDuration(Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 100, 300);
View view_test = getActivity().getLayoutInflater().from(getActivity()).inflate(R.layout.test,null);
TextView tv = (TextView)view_test.findViewById(R.id.tv_test);
tv.setText("我是自定义显示的Toast的view");
toast.setView(view_test);
toast.show();
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/about_us"/>
<TextView
android:id="@+id/tv_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloword"/>
</LinearLayout>
先看
toast.setGravity(Gravity.CENTER, 100, 300);
这行代码setGravity()需要三个参数,第一个为显示的位置中心,第二个参数为移第一个参数为原点的x轴的偏移,同理第三个为Y轴偏移。
再看<pre name="code" class="html"> toast.setView(view_test);
这个方法可以传入一个view,及是view就可以设置内部控件的各种点击事件。