我是 android 世界的新手,正在开发一个 android 应用程序。
我在我的应用程序中使用了许多按钮和图像按钮。
现在我想用背景图像替换它们。(所以我可以轻松制作漂亮的 gui)
我知道我可以使用视图侦听器,并且可以从 onclick 方法中找到单击的 x 和 y 坐标。
但我想知道如何找到点击了图像的哪一部分。因为不同的手机有不同的分辨率,我怎样才能有效地做到这一点?
还有一件事,这样处理 gui 好吗?谢谢 !
我是 android 世界的新手,正在开发一个 android 应用程序。
我在我的应用程序中使用了许多按钮和图像按钮。
现在我想用背景图像替换它们。(所以我可以轻松制作漂亮的 gui)
我知道我可以使用视图侦听器,并且可以从 onclick 方法中找到单击的 x 和 y 坐标。
但我想知道如何找到点击了图像的哪一部分。因为不同的手机有不同的分辨率,我怎样才能有效地做到这一点?
还有一件事,这样处理 gui 好吗?谢谢 !
AFAIK 以这种方式处理 GUI 并不是一个好习惯。主要是因为 android 屏幕尺寸不是标准的,所以你永远无法确定它在所有设备上都能完美运行。您当然可以使用 onTouchListener 处理事件,并从 MotionEvent 对象的坐标中查看图像的哪一部分被单击。但是,我不建议这样做。
创建不同屏幕尺寸的布局并使用 Buttons 和 ImageButtons 处理事件会很好。
您首先需要在执行其他代码之前设置初始窗口宽度和高度,并根据屏幕尺寸加载质量图像。因此,例如,您可以拥有 3 组不同大小的图像。一个用于 5 英寸及以下的屏幕。另一个用于 7 英寸平板电脑。另一个 10 并且可能是以上任何内容的另一个超高质量图像。由于在不久的将来出现的许多设备正在达到比以前开发的分辨率高得多的分辨率。只需首先运行代码来检测手头的初始窗口大小并根据该设备的分辨率加载图像。按照您的计划从他们的计划中进行。
Also to jump on answer above. Detect rotation event and adjust image accordingly. and update accordingly. You are adding more programming of course but no reason what you are asking could not be done. Just a few extra events detection and you should be good to go to accomplish exactly what you are looking to do
您可以在布局 xml 文件中对背景图像使用 android:background 属性...
但是您也可以通过编程方式设置 UI 元素的背景