【问题标题】:android how to position elements to support in all devicesandroid如何定位元素以支持所有设备
【发布时间】:2013-04-06 14:47:02
【问题描述】:

我在定位元素时遇到问题。

无论屏幕大小如何,我都希望在所有设备上都拥有这张图片。

我有两种不同尺寸的这个

我希望我的 textViews 和 editTexts 保持它们在活动视图中的位置。 (imageView中的图像“包含图像的绿色-蓝色-红色-黄色正方形”)

这是我的 layout.xml

        <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical">
                <TextView
                        android:layout_height="30dp"
                        android:layout_width="150dp"
                        android:layout_marginTop="60dp"
                        android:layout_marginLeft="100dp"
                        android:textSize="19dp"
                        android:textStyle="bold"
                        android:gravity="center"
                        android:text="@string/login_app_name">
                </TextView>
                <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="128dp"
                        android:gravity="center_vertical">
                            <TextView
                                    android:layout_height="20dp"
                                    android:layout_width="100dp"
                                    android:layout_marginLeft="35dp"
                                    android:textStyle="bold"
                                    android:gravity="right|center_vertical"
                                    android:text="@string/login_username">
                            </TextView>
                            <EditText
                                    android:layout_height="20dp"
                                    android:layout_width="140dp"
                                    android:layout_alignParentRight="true"
                                    android:layout_marginRight="10dp"
                                    android:background="@drawable/login_edit_text">
                            </EditText>
                </RelativeLayout>
                <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="20dp"
                        android:layout_marginTop="2dp">
                            <TextView
                                    android:layout_height="20dp"
                                    android:layout_width="100dp"
                                    android:layout_marginLeft="35dp"
                                    android:textStyle="bold"
                                    android:gravity="right|center_vertical"
                                    android:text="@string/login_password">
                            </TextView>
                            <EditText
                                    android:layout_height="20dp"
                                    android:layout_width="140dp"
                                    android:layout_alignParentRight="true"
                                    android:layout_marginRight="10dp"
                                    android:background="@drawable/login_edit_text">
                            </EditText>
                </RelativeLayout>

        </LinearLayout>
    </RelativeLayout>

我怀疑这个问题与我用来定位元素的填充和边距有关。但我找不到其他方法。

您是否可以建议我的元素在所有屏幕尺寸中保持其位置?

【问题讨论】:

    标签: android android-layout multiscreen


    【解决方案1】:

    为不同的设备制作单独的xml文件,并将两个xml的图像分开放置,以适应不同的标准分辨率。为两个 XML 文件链接两个单独的类,现在根据屏幕分辨率调用这两个类中的任何一个。您可以使用以下代码获取屏幕分辨率:

    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    
    final int height = dm.heightPixels;
    final int width = dm.widthPixels;
    

    使用 if-else 条件并选择要使用的类

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多