- 浏览: 420295 次
- 性别:
- 来自: 深圳/湛江
文章分类
最新评论
-
wangyudong:
很多API doc生成工具生成doc需要重度依赖代码里加注解的 ...
[ios]利用xcode自动生成项目文档 -
tiger1819:
有源码么,想学习
[android]仿360状态,类流量监控桌面浮动显示 -
119568242:
借我一双翅膀 写道大哥,求指教啊?
IOS 开发,调用打电话,发短信,打开网址 -
借我一双翅膀:
大哥,求指教啊
IOS 开发,调用打电话,发短信,打开网址 -
li247276297:
楼主 是不是要加个权限?
[android]仿360状态,类流量监控桌面浮动显示
前两天看到部分音频播放器可以实现在桌面上显示歌词,360那个浮动的桌面提示,想不到怎么实现。然后查了些资料大致了解了下,比想象的简单多了。先看效果图吧。
白色的字体是我加入进去的,此时是可以允许切换背景的。且按住白色背景可以拖动。
其实主要就是注册一个view到windowsManager上去,然后对它的参数配置成可显示到桌面上的参数就可以了。
下面是代码
activity
就是简单的一个按钮 layout就不写了
package com.cfuture.desktop; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class AndroidDesktopActivity extends Activity { //一个有只有一个按钮的activity @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void funClick(View v){ //按钮被点击 this.startService(new Intent(this,Mser.class)); // new TableShowView(this).fun(); 如果只是在activity中启动 // 当activity跑去后台的时候[暂停态,或者销毁态] 我们设置的显示到桌面的view也会消失 // 所以这里采用的是启动一个服务,服务中创建我们需要显示到table上的view,并将其注册到windowManager上 this.finish(); } }
然后是一个服务
package com.cfuture.desktop; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class Mser extends Service { //服务 //这个类纯蛋疼用 只是为了在activity点击button后 在开启一个service @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } public void onCreate() { //创建service时一个 实例化一个TableShowView对象并且调用他的fun()方法把它注册到windowManager上 super.onCreate(); new TableShowView(this).fun(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub return super.onStartCommand(intent, flags, startId); } }
最后是一个复写的view其实不复写view 也行 总之是能传入context对象就可以的了 不过如果想要实现歌词那种或者可以动态改变内容的 就要复写view分支的类了。
TableShowView
package com.cfuture.desktop; import android.content.Context; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; public class TableShowView extends View { //如果是想显示歌词则继承TextView并复写ondraw方法。 //开启一个线程不断的调用ondraw方法去更改你所写的继承自TextView的内容 //这里随便写了个集成自view的= =这个不是重点 Context c; WindowManager mWM;//WindowManager WindowManager.LayoutParams mWMParams;//WindowManager参数 public TableShowView(Context context) { // TODO Auto-generated constructor stub super(context); c = context; } public void fun() { //设置载入view WindowManager参数 mWM = (WindowManager) c.getSystemService(Context.WINDOW_SERVICE); final View win = LayoutInflater.from(c).inflate(R.layout.ctrl_window, null); //这里是随便载入的一个布局文件 win.setOnTouchListener(new OnTouchListener() { //触屏监听 float lastX, lastY; public boolean onTouch(View v, MotionEvent event) { final int action = event.getAction(); float x = event.getX(); float y = event.getY(); if (action == MotionEvent.ACTION_DOWN) { lastX = x; lastY = y; } else if (action == MotionEvent.ACTION_MOVE) { mWMParams.x += (int) (x - lastX); mWMParams.y += (int) (y - lastY); mWM.updateViewLayout(win, mWMParams); } return true; } }); WindowManager wm = mWM; WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams(); mWMParams = wmParams; wmParams.type = 2003; // type是关键,这里的2002表示系统级窗口,你也可以试试2003。 wmParams.flags = 40;// 这句设置桌面可控 wmParams.width = 300; wmParams.height = 200; wm.addView(win, wmParams);//这句是重点 给WindowManager中丢入刚才设置的值 只有addview后才能显示到页面上去。 //注册到WindowManager win是要刚才随便载入的layout,wmParams是刚才设置的WindowManager参数集 //效果是将win注册到WindowManager中并且它的参数是wmParams中设置饿 } }
写的很杂 就酱子吧
评论
4 楼
tiger1819
2014-06-14
有源码么,想学习
3 楼
li247276297
2012-12-10
楼主 是不是要加个权限?
2 楼
119568242
2012-09-14
貌似掉线 写道
膜拜一下,MARK回去参考。
而已卖萌可耻
1 楼
貌似掉线
2012-09-14
膜拜一下,MARK回去参考。
发表评论
-
[android]使用 Matrix 的随触摸旋转的ImageView
2013-02-22 01:58 7867使用 Matrix 的随触摸旋转的ImageView 突 ... -
[android]动态改变按钮背景状态 StateListDrawable
2012-10-29 10:52 1428动态改变按钮背景状态 很少用到 上次和六哥聊到。 ... -
[android]ViewPage上无法通过onKeyDown()获得按钮事件
2012-08-20 04:53 1332系统无法监听到遥控器在VewPage上的按钮事件,如需 ... -
[android]待解决 lisTview 的onItemSelected 监听事件焦点的问题。
2012-08-18 21:18 2138今天遇到个问题 到目前为止 一直不理解为什么 大概描述下布局 ... -
[android]layout_weight 在layout_width 为fill_parent 与wrap_content 时的不同含义
2012-08-12 12:52 1238转自:http://hi.baidu.com/l ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 3988研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 3研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 0研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]Activity切换动画
2012-08-10 12:23 1448今天准备比赛的时候 遇到了这个问题。 查了些资料 ... -
android中ADT版本问题:无故报 java.lang.NoClassDefFoundError
2012-07-31 22:08 1747今天修改一个老项目的时候,发现在所有配置正确的情况下,代目无任 ... -
[转]android开发问题记录 "founderapp"
2012-02-08 10:48 1029这段时间,由于某种原因,一直在做android手机开发, ... -
关于weight
2012-02-05 21:20 808layout_weight=1后,除了其它的控件之外剩 ... -
判断SD卡是否存在
2012-02-02 17:54 836android.os.Environment.getEx ... -
[转]Android文件管理器介绍
2012-02-02 16:50 3046转自:http://www.linuxidc.com/L ... -
[转]Android文件管理器介绍
2012-02-02 16:49 5转自:http://www.linuxidc.com/L ... -
[转]android 几何图形的绘制
2012-02-01 16:06 2148转自:http://byandby.iteye.c ... -
Android菜鸟日记32-游戏中的碰撞
2012-01-11 23:09 1720Android菜鸟日记 32-游戏中的碰撞 一、 ... -
Android菜鸟日记31-selector 中使用 shape
2012-01-11 23:05 1559Android菜鸟日记 31- ... -
Android菜鸟日记30-View与SurfaceView
2012-01-11 22:45 912Android菜鸟日记 30 View与Surfa ... -
[转]Android开发者指南-Manifest.xml-activity[原创译文]
2012-01-10 17:55 910<activity android:allowTa ...
相关推荐
android 仿360助手 浮动 我目测360也是这样做的!
android仿360 浮动小插件效果
Android应用源码仿360手机助手首页浮动菜单.zip
android例子 360浮动窗口效果.rar 桌面浮动效果例子
Android项目仿360 浮动小插件效果.rar
android桌面浮动窗口实现。窗口在左下角!
网上的一些仿360的浮动窗口效果过于简单,完全不是我们想要的效果,昨天整了一下午,相信是大家想要的效果,3分绝对值,并且还添加了弹出动画
类似360浮动窗口,值得学习,欢迎下载学习。
安卓Android源码——仿360手机助手首页浮动菜单.zip
Android应用源码仿360手机助手首页浮动菜单
仿360 浮动小插件效果_Android
Android应用源码仿360手机助手首页浮动菜单源码,android安卓实例应用源代码,仅供学习及设计参考。
安卓Android源码——仿360 浮动小插件效果.zip
安卓Android源码——仿360 浮动小插件效果.rar
仿360安全卫士(带小球浮动,扫描,软件管理,里面有截图效果,非常全面)
原生js仿360开机启动右下角关闭浮动层效果