自定义Toast完全解析
来源:互联网 发布:淘宝怎么导出订单信息 编辑:程序博客网 时间:2024/04/30 04:26
Toast一般用来显示一行文字,用法比较固定:
Toast.makeText(Context context,String message,int duration);
但是有时候想用toast 来显示复杂的view甚至是带有图片的view时这时候就要用到自定义的Toast,自定义Toast主要用到一下几个方法如图:
1.setView()方法用来显示用户自定义的view.
2. setGravity()用来确定Toast显示的位置.
3.setDuration()用来设置Toast显示的时间长短,只有两种选择,LENGTH_SHORT,LENGTH_LONG,都是int型。
4.setText()用来显示一段文字,但是要注意的时setText()与setView(),不能同时使用不然就会出错。
下面通过一个完整的代码来看看如何实现一个自定义的Toast:
Toast_view.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tianjia_p" android:layout_gravity="center" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello world" android:layout_gravity="center_horizontal" android:textSize="20dp" /></LinearLayout>
Activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/myButton" android:text="button" /></LinearLayout>
ToastUtil:
public class ToastUtil { private static Toast toast; public static void showToast(int duration,View mview,Context context) { if (toast==null) { toast = new Toast(context); } toast.setDuration(duration); toast.setView(mview); toast.show(); }}
MainActivity:
public class MainActivity extends AppCompatActivity {private View toast_view; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LayoutInflater inflater=LayoutInflater.from(this); toast_view =inflater.inflate(R.layout.toast_view,null); button=(Button)findViewById(R.id.myButton); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ToastUtil.showToast(Toast.LENGTH_SHORT,toast_view,getApplicationContext()); } }); }}
上面的ToastUtil工具类 写的不好,大家可以自己改写自己的ToastUtil类。
有兴趣的可以看看这篇stackoverflow上的自定义Toast的文章
0 0
- 自定义Toast完全解析
- Toast自定义及源码解析
- Android 高级自定义Toast及源码解析
- Android 高级自定义Toast及源码解析
- Android Toast的完全自定义与工具类的编写
- 自定义View框架完全解析
- Snackbar新版Toast 从源码角度完全解析
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义toast
- 自定义toast
- 自定义Toast
- 自定义toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 利用正则表达式进行文本替换,编辑工具使用UE
- adb shell am 的用法
- 栈
- 5种打破HTTPS的方式 —《Pretty-Bad-Proxy》
- JSP内置了9大对象
- 自定义Toast完全解析
- caffe学习:Eltwise Layer
- 语音特征参数提取--MFCC
- javascript计算生肖、星座、年龄的方法
- 洛谷 P1982 小朋友的数字
- 菜鸟重拾C语言之路(2)
- openstack Nova分析之 创建虚拟机流程(4)
- 0064 我的编程书籍列表
- 职业规划