Android:将视图放置在任意位置

2024-04-30

我一直在尝试将视图放置在任意位置。

My aim:覆盖 JPG/PNG 的某个矩形,给定坐标与 JPG/PNG 相关的,还有一些其他视图,例如图库或一些视频。

我不想使用绝对布局,因为它已被弃用。

因此,我使用relativelayout,定义一个虚拟文本框作为占位符,并将我的视图放在文本框的右侧和下方。

+--------+
|TextView|
|        | (x,y)
+--------+-----------------------+
         |                       |
         |     My View           |
         |                       |
         +-----------------------+

我的问题是:有没有更健壮、更优雅的方法来做到这一点?

上面建议的方法的问题在于它非常脆弱:需要为每个新屏幕重新计算坐标。我的视图覆盖了下面的东西。它需要准确放置,这是很难做到的。

  • I will need to layout the screen again whenever rotated or zoomed or whatever. Worse:
    • 在初始化时间(放置图像的典型时间),屏幕坐标无效。将实体放置在屏幕上后,坐标才有效。为了将实体准确地放置在屏幕上,我们需要坐标。先有鸡还是先有蛋的问题:(
    • 旋转时,坐标包括边距而不是视图本身的宽度(例如:在纵向 AVD 上,显示纵向 ImageView,然后按 CTRL+F12 进行旋转。ImageView 的左、右、上、下完全是不符合预期)。
    • 当缩放动画时,坐标会缩放。

所以我想找到一种更好的方法来做到这一点。

Thanks
    M.

不完全理解你在做什么,看起来你正在通过使用RelativeLayout为自己做额外的工作。您尝试在屏幕上放置的内容与任何内容无关,它基于图像中的特定坐标,因此即使您使用其他布局之一,您实际上仍然将某些内容放置在绝对坐标中。

至于 AbsoluteLayout 被弃用,根据我的阅读,这只是为了阻止它的使用,因为它与可变屏幕尺寸相关的缺点。他们无意真正删除它,即使他们这样做,您也可以获取源代码并将其编译到您的项目中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:将视图放置在任意位置 的相关文章

  • 有关 paddingStart 使用的冲突 lint 消息

    API 17 RTL 支持发布后 我将以下内容添加到我的清单中 android supportsRtl true 这导致 Lint 在我的视图中有 paddingLeft Right 的地方正确地向我发出这些警告 考虑添加 android
  • RecyclerView 未显示列表中的所有项目

    我在用RecyclerView在我的应用程序中 每次我打开屏幕时 我只能看到一项 但当我调试时 它每次都会出现onBindViewHolder method 这是我的适配器 Override public ViewHolder onCrea
  • 如何使用gradle这样的格式更改apk名称?

    当我使用 gradle 构建应用程序时 我想将 app release apk 文件名更改为如下所示 format appname of package name V version code yyMMdd R T explain appn
  • IntentService、Service 或 AsyncTask

    实现这一点的最佳方法是什么 我有一个 Android 应用程序 它将使用我的 python 服务器来允许两部手机之间进行轮流通信 回合意味着他们在一轮开始之前不能互相交谈 一旦他们发送一条消息 他们就不能发送另一条消息 直到对方做出回应 然
  • 无法找到/下载 AppCompat-v7:23.1.1

    怎么了 我遇到了很多 找不到 appcompat v7 23 1 1 的问题 许多解决方案都不起作用 经过几个小时的思考和寻找答案 我遇到了一个奇怪的问题 I have gotAndroid 支持库 23 1 1 已安装 所有功能 exce
  • 如何在我的 Android 应用程序中实现应用内购买?

    如何在我的 Android 应用程序中实现应用内购买 我提到 http developer android com guide market billing billing integrate html billing service ht
  • 调试 Java InterruptedException,即查找原因

    在调试Android应用程序时 有时中断异常发生并使应用程序崩溃 我已经能够在默认异常处理程序上设置断点 但调用堆栈不提供信息 at java util concurrent locks AbstractQueuedSynchronizer
  • 如何找到特定路线上两点之间的距离?

    我正在为我的大学开发一个 Android 应用程序 可以帮助学生跟踪大学巴士的当前位置 并为他们提供巴士到达他们的预计时间 截至目前 我获取了公交车的当前位置 通过公交车上的设备 和学生的位置 我陷入了必须找到两个 GPS 坐标之间的距离的
  • 仅在 Android 应用程序中使用 XHDPI 可绘制对象?

    如果您计划在不久的将来支持 LDPI MDPI HPDI 或许还有 XHDPI 那么是否可以在项目中仅包含 XHDPI 可绘制对象并让设备将其缩放到所需的分辨率 我已经测试过在 Photoshop 中将可绘制对象的大小调整为 MDPI 和
  • 如何将 Google Now 搜索栏添加到我的应用程序中?

    谷歌刚刚将其搜索栏从 Google Now 引入到了 Play 商店应用程序中 如下面的 gif 所示 如何将这个操作栏搜索栏实现到我自己的应用程序中 我想要 style 汉堡动画 从工具栏按钮访问 麦克风按钮 对棒棒糖设备的连锁反应 我已
  • Flutter Spotify Api 身份验证

    我需要在使用 Spotify api 的 Flutter 应用程序中对用户进行身份验证 我使用 flutter web auth 打开 WebView 并让用户在那里登录 我无法返回应用程序 在 Spotify 仪表板中 我将回调 Uri
  • Android 26 (O) 通知不显示操作图标 [重复]

    这个问题在这里已经有答案了 随着 Android 26 O 引入通知渠道 我一直在调查 Google 提供的com example android notificationchannels 这个示例按预期工作 直到我尝试添加Action到示
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • popupBackground 与 Material Design 相关的问题

    我一直致力于将我的应用程序更新为 Material Design 我有一个使用选项卡的应用程序 由于某种原因 每当我使用 android popupBackground 设置下拉菜单颜色时 它就会崩溃 我设置了一个带有选项卡的默认项目并使用
  • Android 发布到 facebook 墙,stream.publish 几天来就中断了

    我有很多使用 FB android sdk 发布的应用程序 github com facebook facebook android sdk 我所有使用 FB 的应用程序几天后就停止工作了 这必然是 FB 方面的更改或错误 因为我的应用程序
  • InAppMessage 一旦显示就会自动消失

    您好 我最近将 InAppMessaging 添加到我的项目中 这似乎很容易集成 但对我来说并没有按预期工作 首先 我将其添加到 build gradle 中 implementation com google firebase fireb
  • 确定视图是否在屏幕上 - Android

    我对这个有点困惑 首先也是最重要的是 以下链接很有用 但是我提出了一些可见性问题 链接 检查视图可见性 https stackoverflow com questions 4628800 android how to check if a
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • 画布:尝试使用回收的位图错误

    我是一个相当新的程序员 所以任何建议将不胜感激 我有一个类 每次调用它时都会在循环中运行 AsyncTask AsyncTask 看起来像这样 public class LoadImageTask extends AsyncTask
  • 在DialogFragment中,onCreate应该做什么?

    我目前正在摆弄 DialogFragment 以学习使用它 我假设相比onCreateView onCreate 可以这样做 public void onCreate Bundle savedInstanceState super onCr

随机推荐

  • 如何使用 Laravel 5 检查用户是否已确认

    我正在尝试开箱即用地使用 Laravel 身份验证 身份验证不是问题 但我想检查用户是否已确认他的电子邮件地址 我如何让拥有Laravel检查表值是否confirmed值为 1 在 config auth php 我已经设置 driver
  • RecyclerView 的弹跳效果

    我想在RecyclerView 每当我过度滚动内容时就会出现反弹效果 是否有一个库或示例 我也找不到任何支持 RecyclerView 弹跳效果的库 最终我自己实现了一个新的库 查看我的图书馆过度滚动弹力 android https git
  • 从 Ruby 中的方法中检索 Method 实例

    这是一个后续问题如何确定方法是在哪个类中定义的 https stackoverflow com q 34742181 477037 希望你不要介意相似之处 给定一个类层次结构 一个方法可以检索自己的方法吗 Method实例 class A
  • 代理错误:无法将请求 /auth/register 从 localhost:3000 代理到 http://localhost:8800/api/

    注册 jsx import React from react import useState from react import Link from react router dom import axios from axios cons
  • selenium.common.exceptions.SessionNotCreatedException:消息:未从选项卡创建的会话使用 ChromeDriver Chrome Selenium Python 崩溃

    当我尝试访问脚本请求的没有特定的 url 时 显然出现此错误 我不明白为什么会出现这个错误 但我想对其进行处理 以免在发生错误时中止脚本 这会重复 但不能解决我的问题 如何避免错误 selenium common exceptions Se
  • 如何在 swift 中实现 Pubnub Access Manager

    我正在研发如何在 swift 中实现 pubnub 访问管理器 经过一些研究 我了解到 Swift SDK 不包含 pubnub grant 我需要使用 pubnub 函数来实现无服务器计算 我在 pubnub 仪表板中创建了一个函数并创建
  • Go 中的格式错误 - %s %v 或 %w

    s v and w可用于格式化 Go 中的错误 将它们转换为字符串 fmt Errorf 它们在 Go 自己的工具中的使用方式似乎有所不同 In cmd go internal get path go https github com go
  • Git 仅拉取一次提交

    其实git仓库和本地文件是一模一样的 但另一个网站距离 5 次提交还很远 所以我有一段时间没有拉了 我也不想这样做 所以现在我想对我的本地文件进行一些更改 然后将其推送到 git 存储库的新提交中 然后只能拉动该一个提交 而不能拉动所有其他
  • 在设计时存储“记录数组”的最佳方式

    我需要在设计时存储一组数据 以便在运行时构造一组组件的内容 像这样的事情 type TVulnerabilityData record Vulnerability TVulnerability Name string Description
  • Java 递增/递减运算符 - 它们的行为方式是什么,功能是什么?

    开始学习Java已经三天了 我有这个程序 但我不明白其中的代码main方法与 and 运营商 我什至不知道该怎么称呼他们 这些操作员的名字 谁能给我解释一下这是怎么回事 class Example public static void ma
  • 如何将字段从主报表传递到表格元素?

    到目前为止 我使用列标题和详细信息带来生成表格 现在我想使用iReport 4 0 2 中的表格元素 我这样尝试过 iReport 将参数从主报表查询传递到表或列表的数据集查询 https stackoverflow com questio
  • 如何制作Applicative的固定长度向量实例?

    最近了解了推广 决定尝试写向量 LANGUAGE DataKinds GADTs KindSignatures module Vector where data Nat Next Nat Zero data Vector Nat gt gt
  • Python 中的字符串、整数和运算符

    如何在运算中使用算术运算符 由用户作为字符串输入 我可以打印操作本身 但我想打印解决方案 这是我的笨拙尝试 Initialise variables x 2 y 3 Prompt the user for an arithmetic ope
  • Python 在打开套接字时可以选择哪个网络适配器吗?

    运行 python 应用程序的目标计算机将具有三个可用的网络接口 一般来说 所有三个网络都会有很大不同 但是三个网络中的两个可能位于相似的网络上 在下面的示例中 我无法控制 ETH 2 上的目标地址 因为它是预先配置的系统 因此我被迫以编程
  • 如何取消js文件的压缩?

    如何取消通过 webpack 工具缩小的 js 文件 缩小之前 function autoslideSlider next slide trigger click window on load function preloader fade
  • 使用不正确的凭据登录时,Jquery Mobile Rails & Devise 加载页面时出错

    我正在掌握 Rails 3 的窍门 并制作了几个可用的应用程序 我是在 Rails 中使用 javascript 或 jquery 的新手 我有一个使用 Rails 3 2 devise 和 cancan 的工作应用程序 然后我将其转换为使
  • npm - EPERM:Windows 上不允许操作

    I ran npm config set prefix usr local 运行该命令后 当尝试在 Windows 操作系统上运行任何 npm 命令时 我不断收到以下信息 Error EPERM operation not permitte
  • 实体框架,高效的NavigationProperty.OfType查询

    我在使用每表类型 TPT 继承在 EF4 中构造有效查询时遇到问题 我有一个名为Episode 并且每个情节可以有多个事件 有几种不同类型的事件都源自称为Event 我想过滤不包含特定类型事件的所有剧集 Episode有一个导航属性 它是其
  • 用于 C# 和 iPhone 应用程序的 MongoDB

    我正处于设计应用程序的初始阶段 该应用程序将具有用 C 实现的后端 该后端将使用 IIS 上托管的 WCF Web 服务为其他平台提供数据 iPhone 就是其中之一 由于是个人项目 所以想用它来学习MongoDB 我已经知道有社区开发的
  • Android:将视图放置在任意位置

    我一直在尝试将视图放置在任意位置 My aim 覆盖 JPG PNG 的某个矩形 给定坐标与 JPG PNG 相关的 还有一些其他视图 例如图库或一些视频 我不想使用绝对布局 因为它已被弃用 因此 我使用relativelayout 定义一