Android---自定义Toast
2015-06-04 11:16
741 查看
1、Toast类包含一个静态(static)方法makeText(),它可以创建一个标准的Toast显示窗口。一旦创建了一个Toast,就可以调用它的show()方法显示它。
makeText()方法需要要三个参数:
1》应用程序上下文;
2》要显示的文本消息;
3》该Toast的显示时长(Toast.LENGTH_LONG / Toast.LENGTH_SHORT);
代码如下:
2、自定义Toast
2.1、使用setGravity方法改变Toast的显示位置
效果如下:
2.2、自定义View来呈现一个更加复杂或者视觉效果更好的界面
效果如下:
2.3、自定义布局来呈现一个更加复杂或者视觉效果更好的界面(建议使用该方法,代码更加简洁,布局也更加直观)
1》首先定义一个Toast的布局:toast_layout.xml
2》在代码中将该布局添加到Toast中显示
效果同2.2
makeText()方法需要要三个参数:
1》应用程序上下文;
2》要显示的文本消息;
3》该Toast的显示时长(Toast.LENGTH_LONG / Toast.LENGTH_SHORT);
代码如下:
Toast toast = Toast.makeText(MainActivity.this, "Hello World, this is a toast", Toast.LENGTH_LONG); toast.show();效果如下:
2、自定义Toast
2.1、使用setGravity方法改变Toast的显示位置
Toast toast = Toast.makeText(MainActivity.this, "Hello World, this is a toast", Toast.LENGTH_LONG); //底部 toast.setGravity(Gravity.BOTTOM, 0, 0); toast.show();
效果如下:
2.2、自定义View来呈现一个更加复杂或者视觉效果更好的界面
// Toast toast = Toast.makeText(MainActivity.this, "Hello World, this is a toast", Toast.LENGTH_LONG); //顶部 toast.setGravity(Gravity.TOP, 0, 0); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.main_logo); TextView tv = new TextView(this); tv.setText("这是用代码自定义的Toast..."); int height = LinearLayout.LayoutParams.WRAP_CONTENT; int width = LinearLayout.LayoutParams.MATCH_PARENT; ll.addView(iv, height, width);//将ImageView添加到LinearLayout ll.addView(tv, height, width);//将TextView添加到LinearLayout toast.setView(ll);//将LinearLayout设置为toast的显示内容 toast.show();
效果如下:
2.3、自定义布局来呈现一个更加复杂或者视觉效果更好的界面(建议使用该方法,代码更加简洁,布局也更加直观)
1》首先定义一个Toast的布局:toast_layout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout_root" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/main_logo"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="这是用布局文件自定义的Toast"/> </LinearLayout>
2》在代码中将该布局添加到Toast中显示
// Toast toast = Toast.makeText(MainActivity.this, "Hello World, this is a toast", Toast.LENGTH_LONG); //顶部 toast.setGravity(Gravity.TOP, 0, 0); //获取LayoutInflater对象,该对象能把XML文件转换为与之一致的View对象 LayoutInflater inflater = getLayoutInflater(); //根据指定的布局文件创建一个具有层级关系的View对象 //第二个参数为View对象的根节点,即LinearLayout的ID View toast_layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); //让Toast显示为我们自定义的样式 toast.setView(toast_layout); toast.show();
效果同2.2
相关文章推荐
- android 图片文字尺寸(dp和sp)
- android webview用法小结2 java与javascript的交互
- Android 保存图片到系统及相关问题的解决方案
- Android自定义CheckBox
- Android设计模式(五)--简单工厂模式
- 在Android中实现Digets密码认证(在安卓中用Authenticator不起作用)
- Android的ImageSwitcher和TextSw-android学习之旅(三十四)
- Android的ImageSwitcher和TextSw-android学习之旅(三十四)
- Android的ImageSwitcher和TextSw-android学习之旅(三十四)
- Android开发之旅:环境搭建及HelloWorld
- Android调试方法总结
- Win7环境下搭建Android安卓开发环境(原创教程)
- Android:onNewIntent()触发机制及注意事项
- Android按钮计时工具类
- android布局属性详解
- Android 判断当前Activity是不是最后一个Activity 以及 应用或Activity是否存在
- Android Develop Helper
- Android动画特效之水波(地震波)报警动画
- android语音录制与播放
- android Graphics(一):概述及基本几何图形绘制