android自定义toast(widget开发)示例
1、Toast控件:
通过查看源代码,发现Toast里面实现的原理是通过服务Context.LAYOUT_INFLATER_SERVICE获取一个LayoutInflater布局管理器,从而获取一个View对象(TextView),设置内容将其显示
public static Toast makeText(Context context, CharSequence text, int duration) {
Toast result = new Toast(context);
LayoutInflater inflate = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
tv.setText(text);
result.mNextView = v;
result.mDuration = duration;
return result;
}
定义布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/iv_my_toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/notification" />
<TextView
android:id="@+id/tv_my_toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="text"
/>
</LinearLayout>
自定义MyToast类:
public class MyToast {
/**
* 显示自定义的土司
* @param context 上下文
* @param iconid 图标的id
* @param text 显示的文本
*/
public static void showToast(Context context,int iconid, String text){
View view = View.inflate(context, R.layout.my_toast, null);
TextView tv = (TextView) view.findViewById(R.id.tv_my_toast);
ImageView iv = (ImageView) view.findViewById(R.id.iv_my_toast);
iv.setImageResource(iconid);
tv.setText(text);
Toast toast = new Toast(context);
toast.setDuration(0);
toast.setView(view);
toast.show();
}
}
相关文章
Android EasyPermissions官方库高效处理权限相关教程
Easypermissions简化了Android M的运行时权限的申请、结果处理、判断等步骤。这篇文章主要介绍了Android EasyPermissions官方库高效处理权限相关教程,需要的朋友可以参考下2017-11-11IDEA打包jar-解决找不到或无法加载主类 main的问题
这篇文章主要介绍了IDEA打包jar-解决找不到或无法加载主类 main的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08Fragment里添加ListView不要用ListFragment
这篇文章主要介绍了Fragment里添加ListView不要用ListFragment,需要的朋友可以参考下2015-07-07详解Android Libgdx中ScrollPane和Actor事件冲突问题的解决办法
这篇文章主要介绍了详解Android Libgdx中ScrollPane和Actor事件冲突问题的解决办法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下2017-09-09Android编程实现支持拖动改变位置的图片中叠加文字功能示例
这篇文章主要介绍了Android编程实现支持拖动改变位置的图片中叠加文字功能,可实现Android图片与文字动态操作功能,涉及视图及图片动态运算相关操作技巧,需要的朋友可以参考下2017-01-01Android编程图片操作类定义与用法示例【拍照,相册选图及裁剪】
这篇文章主要介绍了Android编程图片操作类定义与用法,涉及Android拍照,相册选图及裁剪等图片操作功能及权限控制相关操作技巧,需要的朋友可以参考下2018-02-02
最新评论