繁体   English   中英

所有Android设备上的UI元素(按钮,图像按钮)的位置相同

[英]Same position for UI elements (buttons, image buttons) on all android devices

我的应用程序使用通过XML和drawable文件夹构造的按钮和图像按钮。
在某些设备应用程序上,UI元素(按钮和图像按钮)丢失了位置,并且彼此重叠,并且在某些设备上,屏幕底部的最后一个按钮消失了。
改变方向时也会发生同样的情况。

我希望所有元素在所有设备上都位于同一位置。
如何使用XML做到这一点。
有没有简便的方法?
这是我的XML。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg"
    android:orientation="vertical" >

    <ImageButton
        android:id="@+id/main_btn_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="55dp"
        android:layout_marginTop="71dp"
        android:background="#ffffff"
        />

    <ImageButton
        android:id="@+id/main_btn_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/main_btn_1"
        android:layout_marginRight="56dp"
        android:background="#000000"
        />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/main_btn_1"
        android:layout_below="@+id/main_btn_1"
        android:textColor="#00aeed"
        android:textStyle="normal" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_alignLeft="@+id/main_btn_2"
        android:textColor="#ea1d24"
        android:textStyle="normal" />

    <ImageButton
        android:id="@+id/main_btn_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="42dp"
        android:background="#000000"
        />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/main_btn_3"
        android:layout_below="@+id/main_btn_3"
        android:textColor="#f7941d"
        android:textStyle="normal" />

    <ImageButton
        android:id="@+id/main_btn_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignTop="@+id/main_btn_3"
        android:background="#000000"
         />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/main_btn_4"
        android:layout_below="@+id/main_btn_4"
        android:textColor="#f7941d"
        android:textStyle="normal" />

    <ImageButton
        android:id="@+id/main_btn_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView4"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="12dp"
        android:background="#000000"
        />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/main_btn_5"
        android:layout_centerHorizontal="true"
        android:gravity="center_horizontal"
        android:textColor="#0065b3"
        android:textStyle="normal" />

</RelativeLayout>

由于许多设备的屏幕尺寸,分辨率等都不同,因此可能需要避免的主要事情是在放置布局元素时使用绝对位置。 Android SDK具有一些功能强大的结构,可避免绝对定位(例如LinearLayout,RelativeLayout),因此请尝试使用它们,而不是定义“ 12dp”之类的位置,而应使用正确的layout_width,layout_height(wrap_content或match_parent)和layout_weight组合,可以帮助您放置布局元素而无需指定绝对位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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