繁体   English   中英

Android上的按钮

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM