android视图移动,如何在Android中移动视图?

WindowManager为每个视图维护至少两个LayoutParams类实例,除了View本身之外的那个实例.

检查WindowManager的updateViewLayout方法,特别是这部分:

view.setLayoutParams(wparams);

synchronized (this) {

int index = findViewLocked(view,true);

ViewRoot root = mRoots[index];

mParams[index] = wparams;

root.setLayoutParams(wparams,false);

}

我相信你可以通过直接调用布局来制造一些混乱.请改用WindowManager.updateViewLayout.它会更慢,但更安全(只是IMO).

UPDATE

WindowManager windowsManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)

WindowManager.LayoutParams windowParams = new WindowManager.LayoutParams();

windowParams.x = ;

windowParams.y =

windowParams.height = myImageView.getHeight();

windowParams.width = myImageView.getWidth();

windowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE

| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE

| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN

| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;

windowParams.format = PixelFormat.TRANSLUCENT;

windowParams.windowAnimations = 0;

windowManager.updateViewLayout(myImageView,windowParams);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值