如何在 Android 中移动视图?

2023-11-26

我有一个项目,面临两个挑战:

First:

  • 将图标移动到手指触摸屏幕的任何位置:

为此,我发现的最好的方法是使用.layout()视图上的方法。

Second:

  • 我有两个布局,一个相对布局,都有屏幕宽度和高度(1 隐藏在另一个后面)。每次单击按钮时,我都想将上面的那个向右移动几次。

Android 上有更好的移动视图的方法吗?

使用该方法可能有什么缺点.layout() ?

public void layout (int l, int t, int r, int b) 
Since: API Level 1 
Assign a size and position to a view and all of its descendants 

Parameters:
l  Left position, relative to parent 
t  Top position, relative to parent 
r  Right position, relative to parent 
b  Bottom position, relative to parent  

提前致谢。


WindowManager 至少还维护两个实例LayoutParams除了视图中的那个视图之外,每个视图的类View itself.

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

    view.setLayoutParams(wparams);

    synchronized (this) {
        int index = findViewLocked(view, true);
        ViewRoot root = mRoots[index];
        mParams[index] = wparams;
        root.setLayoutParams(wparams, false);
    }

我相信你可以通过打电话来制造一些混乱layout直接地。使用WindowManager.updateViewLayout反而。它会更慢,但安全(仅在我看来)。


UPDATE

[From: https://stackoverflow.com/a/11188273/327011 ]

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

WindowManager.LayoutParams windowParams = new WindowManager.LayoutParams();
windowParams.x = <new X coord>;
windowParams.y = <new Y coord>
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 中移动视图? 的相关文章

随机推荐

  • 如何将位图缩放到屏幕尺寸?

    我想知道如何将位图缩放到屏幕高度和宽度 谁能告诉我该怎么做 谢谢 莫纳利 试试这个来解码位图 其中 imagefilepath 是图像的路径名 它将在 String 中通过使用将其隐藏到 File File photos new File
  • Angular2,禁用锚元素的正确方法是什么?

    我正在研究一个Angular2应用程序 我需要显示 但是disable an a HTML元素 这样做的正确方法是什么 Updated 请注意 ngFor 这将阻止使用的选项 ngIf并且不渲染 a 共 a href link name a
  • 为什么#define 一个空宏?

    为什么有时我会看到 define Empty macro 在C语言中 它有什么用呢 例如 ifndef BUILDIN H define BUILDIN H codes never used BUILDIN H endif BUILDIN
  • Javascript:使用动态变量名称访问 JSON 数据中的嵌套值

    我有一个嵌套的 Javascript 对象 例如 var data name heading Name required 1 type String profile age heading Age required 0 type Numbe
  • 如何在包内的 Meteor 中将模板添加到正文

    我有这个模板
  • Lombok @Wither/@With Inheritance(超/子类)

    请建议如何使用 Wither With当继承应用时 我有一个抽象类Parent和混凝土Child Child应该是不可变的 推杆 Wither两者都给了我两个错误 构造函数 Child String 未定义 Child 类型必须实现继承的抽
  • 我可以在 Firebase 函数上实现 beforeCreate 触发器吗

    On the Firebase 文档他们提到了 4 种类型的触发器 onCreate onDelete onUpdate onWrite 有没有办法在触发 child added 侦听器之前侦听云函数中添加的行并修改添加行的字段 有没有办法
  • 无法在视图目录中查找视图“索引”

    我正在尝试学习node js 我有以下代码 var express require express var app express var port process env PORT 5000 app use express static
  • NLP:构建(小型)语料库,或者“哪里可以获得大量不太专业的英语文本文件?”

    有人建议在哪里可以找到用于小型语料库的日常英语文本档案或集合吗 我一直在使用古腾堡项目书籍作为工作原型 并希望融入更多现代语言 A最近的回答这里间接指出了一个伟大的Usenet 电影评论档案 这是我没想到的 而且非常好 对于这个特定的程序
  • 将 ProtoBuf-Net 与标志枚举一起使用时出错

    在使用 ProtoBuf Net 并序列化枚举属性 其中枚举设置为 FlagsAttribute 时 在序列化由多个标志组成的枚举值时 我收到以下错误消息 错误是 值 MyEnum MyValue 没有属性 MyProperty 的线表示
  • 如何在javascript中获取数组中的最小元素?

    这是我尝试过的 Math min 1 2 3 但只得到NaN use apply Math min apply null 1 2 3 gt 1 来自开发大师 Function apply thisArg argArray apply 方法允
  • Qt MainWindow CloseEvent Mac Cmd+Q

    在 OS X 10 9 上 使用 Qt 5 2 和以下应用程序代码 include mywindow h include
  • Linux内核中如何从函数指针获取函数名?

    如何从中获取函数的名称函数指针 in C 编辑 真实的情况是 我正在编写一个 Linux 内核模块 并且正在调用内核函数 其中一些函数是指针 我想在内核源代码中检查该函数的代码 但我不知道它指向哪个函数 我认为这是可以做到的 因为当系统失败
  • C 固定大小数组被视为可变大小

    我一直在尝试定义一个静态数组 其大小应该在编译时已知 它是一个常量表达式 当数组包含浮点常量时 gcc 似乎无法确定数组的大小 并且我得到 的存储大小不是常量 这是一个最小的例子 int main void static int foo u
  • 基于JTextField过滤JList

    我的程序中有一个 JTextField 和一个 JList JList 包含用户的联系人 我想根据 JTextField 上的文本过滤 JList 例如 如果我输入 Mike 它只会显示包括 Mike 的联系人 当用户清除 JTextFie
  • 迁移中没有自动增量选项的 id 字段

    我有一个数据库迁移 如下所示 class CreateParticipations lt ActiveRecord Migration def self up create table participations primary key
  • matplotlib:将图例符号放在标签右侧

    这是一件简单的事情 但我已经搜索了很长一段时间但没有成功 我想通过以下方式自定义人物图例倒车符号和标签的水平顺序 在 Gnuplot 中 这可以简单地通过以下方式实现设置键反转 示例 改变x data1 to data1 x 在matplo
  • 类型错误:driver.isElementPresent 不是函数

    我正在尝试编写一个登录网站的节点函数 但无法使其正常工作 我正在尝试使用以下命令等待页面加载isElementPresent函数 引用于这个帖子但它似乎不起作用 这是我到目前为止所拥有的 const webdriver require se
  • Python - 无法打开 lib 'libtdsodbc.so':找不到文件

    非常感谢有关此问题的任何帮助 目标 使用 FreeTDS 将 Django 连接到 MSSQL 服务器 我使用的是 Debian x64 盒子 问题 当尝试建立连接时 我得到以下信息 01000 01000 unixODBC Driver
  • 如何在 Android 中移动视图?

    我有一个项目 面临两个挑战 First 将图标移动到手指触摸屏幕的任何位置 为此 我发现的最好的方法是使用 layout 视图上的方法 Second 我有两个布局 一个相对布局 都有屏幕宽度和高度 1 隐藏在另一个后面 每次单击按钮时 我都