关于模拟鼠标图标的实现

原文:http://www.eoeandroid.com/thread-54395-2-1.html


对原文的代码稍作修改:

public class Main extends Activity {
	int x = 0;
	int y = 0;
	public static WindowManager.LayoutParams mParams;
	WindowManager mWM ;
	ImageView mMouseView;
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initMouseView();
    }
    
  //创建鼠标视图
	public void initMouseView() {
		mWM = (WindowManager) this.getBaseContext().getSystemService(
				Context.WINDOW_SERVICE);
		mMouseView = new ImageView(this.getBaseContext());
		mMouseView.setBackgroundResource(R.drawable.ic_launcher);
		mParams = new WindowManager.LayoutParams(
				WindowManager.LayoutParams.WRAP_CONTENT,
				WindowManager.LayoutParams.WRAP_CONTENT,
				WindowManager.LayoutParams.TYPE_TOAST,
				WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
						| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
				PixelFormat.TRANSLUCENT);
		mParams.gravity = Gravity.LEFT | Gravity.TOP;


		mParams.x = x;
		mParams.y = y;
		mWM.addView(mMouseView, mParams);
	}
	
	public boolean onTouchEvent(MotionEvent event) {
		mParams.x = (int) event.getX();
		mParams.y = (int) event.getY();
		mWM.updateViewLayout(mMouseView, mParams);
		return true;
	}


	//移动鼠标视图
	public void moveMouse() {
		mParams.x += 10;
		if (mParams.x > 200) {
			mParams.x = 0;
		}
		mParams.y += 10;
		if (mParams.y > 200) {
			mParams.y = -50;
		}
		mWM.updateViewLayout(mMouseView, mParams);


	}
}

此例子还有很多缺点:

比如不能在退出程序后移动鼠标的图案。

鼠标的x,y坐标稍有点不对应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值