【发布时间】:2015-08-18 16:49:21
【问题描述】:
我在我的应用程序中实现了一个 ViewPager 屏幕幻灯片。我希望用户能够单击图像的某些部分以打开对话框或网站。当我使用 iOS 时,我做了一个解决方法,在我计划用户拥有的每台设备上找到图像的坐标。这显然不是最好的方法,但当时我并没有直接计划使用 Android 版本。现在,情况发生了变化,我开始认为这种实现会非常乏味且不实用,尤其是在有这么多 Android 设备的情况下。在不使用坐标和硬编码位置的情况下单击图像的这些部分的最佳方法是什么?任何帮助表示赞赏!谢谢
编辑:这是一个图片示例(请原谅我可怕的计算机绘图技能)...黑框代表 android 设备屏幕,红色框代表整个图像,绿色、黄色和蓝色框是我的部分希望能够点击。如果不清楚,请告诉我。
【问题讨论】:
-
只是部分图片?
-
嗨@0X0nosugar,我发布了我想说的图片示例,但是是的,图片的某些部分
-
也许您可以通过在 Photoshop 中编辑图像并裁剪或修剪您想要作为按钮做出反应的每个视图来更轻松地实现您想要的效果,然后在您的布局 xml 中放置许多图像视图并为每个视图设置 onClickListener其中。
-
android 一方面有RelativeLayout,另一方面有密度无关像素(dp)的概念。因此,也许可以将透明的可点击视图放在一个包含您的图片的 ImageView 之上,并在 dp.xml 中设置它们的宽度和高度以及边距(左侧和顶部)。当然,如果您更改图片,您可能必须更改可点击视图的 dp 值。但是这样你就可以避免硬编码每个设备的坐标。
-
@HusseinElFeky,我打算这样做,但我必须在屏幕幻灯片中使用多个基本图像,所以我必须制作大量编辑后的图像,然后正确对齐。这是一个好主意,但不是我想要的。谢谢!
标签: android android-viewpager coordinates android-imageview