Android 4.1.2 的开发者选项有个在屏幕覆盖层显示Cpu使用的,这个是怎么做到的?如何实现类似的效果?Java或者C都行的。android屏幕覆盖层
解决方案 »
- android4.1 getActionBar返回null,求解释。。。。。。。。
- 请教:MediaPlayer播放进度问题
- 简单屏幕对应问题
- shell中这句话怎么理解
- 2.2版本 电源管理widget 出现异常界面
- android 为不同联系人设置不同铃声的功能要怎么实现?
- android:background 能否写在style.xml里?
- 界面 弹出自定义View
- Android webview在线读取office文档
- 带什么样的androidAPP去面试android开发好?
- activityGroup 里startActivityForResult的解决
- 菜鸟求助,eclipse无法创建AVD
import android.app.Activity;
import android.graphics.PixelFormat;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;public class FlowView {
private WindowManager wm=null;
private WindowManager.LayoutParams wmParams=null;
protected View view = null;
private float x,y,startX,startY;
private int TOOL_BAR_HIGH = 0;
public FlowView(int viewid,Activity act){
//获取WindowManager
wm=(WindowManager)act.getApplicationContext().getSystemService("window");
//设置LayoutParams(全局变量)相关参数
wmParams = new WindowManager.LayoutParams();
wmParams.type=LayoutParams.TYPE_PHONE; //设置window type
//wmParams.format=PixelFormat.RGBA_8888; //设置图片格式,效果为背景透明
//设置Window flag
wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE; //以屏幕左上角为原点,设置x、y初始值
wmParams.x=0;
wmParams.y=0;
//设置悬浮窗口长宽数据
TOOL_BAR_HIGH = 200;
wmParams.width=LayoutParams.WRAP_CONTENT;
wmParams.height=LayoutParams.WRAP_CONTENT;
//调整悬浮窗口
wmParams.gravity=Gravity.LEFT|Gravity.CENTER_VERTICAL;
//显示myFloatView图像
view = LayoutInflater.from(act).inflate(viewid, null);
wm.addView(view, wmParams);
}
public void destroy(){
if(view!=null){
wm.removeView(view);
}
}
public boolean onTouchEvent(MotionEvent event) {
//触摸点相对于屏幕左上角坐标
x = event.getRawX();
y = event.getRawY() - TOOL_BAR_HIGH;
//Log.d(TAG, "------X: "+ x +"------Y:" + y);
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
updatePosition();
break;
case MotionEvent.ACTION_UP:
updatePosition();
startX = startY = 0;
break;
}
return true;
}
//更新浮动窗口位置参数
private void updatePosition(){
if(view!=null){
// View的当前位置
wmParams.x = (int)( x - startX);
wmParams.y = (int) (y - startY);
wm.updateViewLayout(view, wmParams);
}
}}
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>