Android上面开发自己的Toast系统的思路
2011-11-15 19:19
537 查看
了解老码农个人隐私,请看这里:http://www.koulianbing.com/?page_id=12
发现系统的Toast的cancel机制有问题,一旦把前一个cancel掉再显示新的Toast时,新的Toast会卡住一段时间显示不出来。
建立一个自己的Toast系统需要注意的几个地方:
1、建立Service专门负责显示、隐藏等
2、在Service中使用WindowManager的addView和removeView实现显示、隐藏
3、注意需要设置的flag、format和type等参数
4、在AndroidManifest.xml中添加权限如下:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
不加上面这个权限的话,会把系统当前窗口的焦点给夺过去。
关键代码如下:
补充于:2011.11.18
找到解决方案了,直接把原来的Toast拿过来重新设置显示文本、时间就可以了。
发现系统的Toast的cancel机制有问题,一旦把前一个cancel掉再显示新的Toast时,新的Toast会卡住一段时间显示不出来。
建立一个自己的Toast系统需要注意的几个地方:
1、建立Service专门负责显示、隐藏等
2、在Service中使用WindowManager的addView和removeView实现显示、隐藏
3、注意需要设置的flag、format和type等参数
4、在AndroidManifest.xml中添加权限如下:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
不加上面这个权限的话,会把系统当前窗口的焦点给夺过去。
关键代码如下:
public void show(Context context, String content) { WindowManager windowManager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); if (tv != null) { windowManager.removeView(tv); } WindowManager.LayoutParams params = new WindowManager.LayoutParams(); params.height = WindowManager.LayoutParams.WRAP_CONTENT; params.width = WindowManager.LayoutParams.WRAP_CONTENT; params.y += 20; params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; params.format = PixelFormat.TRANSLUCENT; params.type = WindowManager.LayoutParams.TYPE_TOAST; LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); tv = (TextView) layoutInflater.inflate(R.layout.renren_toast, null); tv.setText(content); windowManager.addView(tv, params); }
补充于:2011.11.18
找到解决方案了,直接把原来的Toast拿过来重新设置显示文本、时间就可以了。
相关文章推荐
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程
- 开发自己的监控系统三、移动篇(android)
- 对于接下来自己的规划,想学习一下分布式系统和Android手机开发。
- android开发,关于android app实现静默安装自己(系统签名)
- 怎么样将自己开发的Android应用程序编译到系统Image中
- android 开发之如何让toolbar 透明并且覆盖到系统状态栏上面
- 王立平--android项目的开发设计思路,自己总结的,仅供参考
- android studio开发教程 ListActivity的2种使用方法:系统默认布局和自己定义布局
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程
- Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程
- ios有文件管理系统吗?自己开发的应用能不能像Android一样读取本地文件列表?
- android 将自己的程序加入到系统调用列表
- Android开发_如何调用系统默认浏览器访问
- 深入浅出 - Android系统移植与平台开发(一)
- Android开发 系统自带样式
- 深入浅出 - Android系统移植与平台开发(十二) - Sensor HAL框架分析之二
- Android软件开发之发送短信与系统短信库解析
- Android开发之生成自己的签名文件及App签名打
- android开发中系统自带语音模块的使用