Toast自定义,自定义Toast的两种方式,土司的代码显示
2013-12-03 13:17
381 查看
自定义Toast替换系统的显示,代码中发现了有两种方式可以实现
方法一:
直接new布局,然后添加一个TextView实现,总体不涉及id,和布局xml的书写,适合平面化的toast
最终演示如图:
===============================================
方法二:
使用常见的LayoutInflate来进行,这种可以加载自定义的动画,而且显示效果较多,特殊需求的话可以用得着
加载了一个自定义的布局,然后里面有一个Text,一个ImageView
两张方式实现了我们自定义Toast的方式,满足了两种不同的需求,很方便的
【作者一字一句敲出来的,如果转载请注明出处】
方法一:
直接new布局,然后添加一个TextView实现,总体不涉及id,和布局xml的书写,适合平面化的toast
/** * 自定义样式 * @param context * @return */ private static LinearLayout setToastSelfStyle(Context context) { if (linearLayout == null) { linearLayout = new LinearLayout(context); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); lp.setMargins(26,0,26,0); linearLayout.setLayoutParams(lp); linearLayout.setGravity(Gravity.CENTER); linearLayout.setBackgroundResource(R.drawable.toast_bg_style); linearLayout.setOrientation(LinearLayout.HORIZONTAL); //linearLayout.setPadding(16, 0, 16, 0); //框大小变化 } linearLayout.removeAllViews(); linearLayout.addView(mTv); return linearLayout; } /** * 设置文字 * @param context */ private static void setText(Context context) { if (mTv == null) { mTv = new TextView(context); mTv.setTextColor(context.getResources().getColor(R.color.white)); mTv.setTextSize(20); } }
最终演示如图:
===============================================
方法二:
使用常见的LayoutInflate来进行,这种可以加载自定义的动画,而且显示效果较多,特殊需求的话可以用得着
LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom, (ViewGroup) findViewById(R.id.llToast)); ImageView image = (ImageView) layout .findViewById(R.id.tvImageToast); image.setImageResource(R.drawable.icon); TextView title = (TextView) layout.findViewById(R.id.tvTitleToast); title.setText("Attention"); TextView text = (TextView) layout.findViewById(R.id.tvTextToast); text.setText("完全自定义Toast"); toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show();
加载了一个自定义的布局,然后里面有一个Text,一个ImageView
两张方式实现了我们自定义Toast的方式,满足了两种不同的需求,很方便的
【作者一字一句敲出来的,如果转载请注明出处】
相关文章推荐
- cxGrid显示行号的两种方式和两种代码
- 让flash自动显示代码提示的两种方式
- Android编程经典代码集锦(复制,粘贴,浏览器调用,Toast显示,自定义Dialog等)
- 让flash自动显示代码提示的两种方式
- Toast 自定义显示位置,toast和通讯录的a-z 一起走 部分代码
- Cordova4.3.1 android 自定义插件(显示土司Toast)
- 两种方式(xib和代码)创建自定义collectionview
- 帝国 标签模板 使用程序代码 自定义 时间显示方式
- 自定义toast时,有些时候不能设置想要的宽和高(代码动态设置或使用文末方式)
- iOS开发 自定义tableView样式(使用代码/使用Interface Builder)、分组显示、给TableView增加索引、给TableView增加SearchBariOS开发 自定义tab
- Dynamics CRM2011中通过JS脚本方式显示和隐藏ribbon中的自定义按钮
- 自定义Cell注册两种方式
- 算法代码实现之归并排序,Java实现,自顶向下与自底向上两种方式
- iOS开发小技巧--自定义带有占位文字的TextView(两种方式)
- vue 自定义提示框(Toast)组件的实现代码
- Windows Phone 7 Image控件显示网络图片的两种方式
- IOS 播放雪花的两种方式(代码方式)
- Android自定义Toast,并解决toast不重复显示
- Android全屏显示的两种方式
- 自定义ActionBar的两种方式(静态&动态)