我正在尝试针对不同的屏幕尺寸优化我在应用中的视图。我的代码是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.xxx.xxx.MainActivity$PlaceholderFragment">
<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/section_label"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/section_label"
android:orientation="vertical">
<TextView
android:id="@+id/title1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="210dp"
android:layout_alignLeft="@+id/linearLayout1"
android:layout_alignRight="@+id/linearLayout1"
android:layout_below="@+id/linearLayout1"
android:orientation="vertical">
<com.parse.ParseImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/linearLayout2"
android:layout_alignRight="@+id/linearLayout2"
android:layout_below="@+id/linearLayout2"
android:orientation="vertical">
<TextView
android:id="@+id/title2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/linearLayout3"
android:layout_alignRight="@+id/linearLayout3"
android:layout_below="@+id/linearLayout3"
android:orientation="vertical">
<ScrollView
android:id="@+id/textAreaScroller"
android:layout_width="fill_parent"
android:layout_height="105dp"
android:layout_x="0px"
android:layout_y="25px"
android:scrollbars="vertical">
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/fbedittext"
android:layout_alignParentRight="true"
android:layout_below="@+id/fbedittext"
android:layout_marginTop="22dp"
android:lines="7" />
</ScrollView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/linearLayout4"
android:layout_alignRight="@+id/linearLayout4"
android:layout_below="@+id/linearLayout4">
<Button
android:id="@+id/OK_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK" />
</LinearLayout>
我已经在HTC Glacier和摩托罗拉Moto X上测试了代码,如果我看到一个看起来很好的视图,那么另一个看起来很糟糕。我试图按照这里的指示:http://developer.android.com/guide/practices/screens_support.html我创建了小型,普通和大型布局,而冰川和摩托罗拉也采用了正确的屏幕尺寸。我希望Glacier能够采用正常的屏幕尺寸(它确实如此),但摩托罗拉也采用了正常的屏幕尺寸(我没想到)。有没有人知道如何在所有屏幕尺寸上使这看起来像样?理想情况下,我希望只拥有一个XML文件,并让图像视图和描述对象动态缩小和扩展以填充可用空间,并使标题和按钮保留在当前位置。
谢谢!
答案 0 :(得分:0)
我认为您需要在res - &gt;值中使用维度文件夹。 试试
values
values-hdpi
values-xhdpi
values-large-hdpi
and also
drawable/
drawable-large/
drawable-xlarge/
drawable-hdpi/
drawable-large-hdpi/
drawable-xlarge-hdpi/
drawable-xhdpi/
drawable-large-xhdpi/
drawable-xlarge-xhdpi/
with
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
尝试使用ur项目中的上述文件夹。
答案 1 :(得分:0)
我让你的布局非常扁平,删除了层次结构。如果使用平面布局会更好。这个应该看起来像任何屏幕尺寸,没有不同的屏幕尺寸的不同布局。
使用默认值更改了您的imageView以检查布局,您可以将其更改为您自己的。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.xxx.xxx.MainActivity$PlaceholderFragment" >
<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="label" />
<TextView
android:id="@+id/title1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="210dp"
android:layout_below="@+id/title1"
android:src="@drawable/abc_ab_bottom_transparent_dark_holo" />
<TextView
android:id="@+id/title2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageview"
android:layout_centerHorizontal="true"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ScrollView
android:id="@+id/textAreaScroller"
android:layout_width="fill_parent"
android:layout_height="105dp"
android:layout_below="@id/title2"
android:layout_x="0px"
android:layout_y="25px"
android:scrollbars="vertical" >
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/fbedittext"
android:layout_alignParentRight="true"
android:layout_below="@+id/fbedittext"
android:layout_marginTop="22dp"
android:lines="7" />
</ScrollView>
<Button
android:id="@+id/OK_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textAreaScroller"
android:text="OK" />
</RelativeLayout>