[英]Buttons Over Image Android
我正在为我的应用程序开发一项功能,用户可以单击图像背景中放置的按钮。 问题:我需要将按钮放置在图像中的特定位置,以使其看起来不会移位,并且可以动态地适应不同类型设备的分辨率。 这是一个图像示例:
我想将按钮恰好放置在这些圆角正方形的位置。 我如何确定它们在不同设备中的外观也完全相同? 我可能需要在每个按钮上方放置一些文本。 这些按钮必须是可单击的,并且按钮上有一些动画,以便用户知道何时单击该按钮。 任何线索都非常感谢。 任何可行的解决方案都是公认的答案。
氏族的游戏冲突有一些相似之处:
这正是我要实现的目标!
由于有许多Android设备,因此实际上您不能在所有设备上都显示准确的按钮。 您可以使用RelativeLayout或LinearLayout来确保顶部标题位于按钮上方
会有一个带有两个子视图的父视图:一个是标题,另一个是所有按钮
如果使用RelativeLayout,则可以将按钮放置在Image中的任何位置。
只需确保使用DP度量单位,并为每种密度制作尺寸合适的图像即可。
一个简短的例子:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent" />
<Button android:layout_marginLeft="10dp"
android:layout_marginTop="10dp" />
<Button android:layout_marginLeft="30dp"
android:layout_marginTop="30dp" />
<Button android:layout_marginLeft="10dp"
android:layout_marginTop="50dp" />
</RelativeLayout>
我通过使用设备的宽度和高度的百分比找到了一种被黑的解决方案。 它适用于平板电脑和2个其他不同屏幕尺寸的设备。
int w = front_layout.getWidth();
int h = front_layout.getHeight();
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int top = convert(h * 0.248f);
int bottom = 0;
int left = convert(w * 0.186f);
int right = 0;
params.setMargins(left, top, right, bottom);
btn1.setLayoutParams(params);
private int convert(float value) {
return (int) Math.ceil(value);
}
唯一的缺点是我必须通过尝试和错误来找到确切的百分比。 更好的解决方案将为我接受的答案打分!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.