如何在android中布局支持各种屏幕?

时间:2010-09-24 10:38:50

标签: android

alt text

alt text

我正在使用gridview开发图库视图,在小屏幕上我的布局设计固定得很好,但是大屏幕没有我的设计,在大屏幕下有一些空间吼叫“加载更多图片”按钮参考图2,我怎么能解决这个问题问题,我的清单文件添加了这行以支持各种屏幕,请为我提供一些示例代码..

<supports-screens android:largeScreens="true"
 android:normalScreens="true" android:smallScreens="true"
 android:anyDensity="false" /> 

和我的xml代码

<?xml version="1.0" encoding="utf-8"?>
<merge android:layout_width="wrap_content" android:layout_height="340dp" xmlns:android="http://schemas.android.com/apk/res/android">
 <LinearLayout  android:id="@+id/LinearLayout01"  
 android:layout_width="fill_parent" 
 android:layout_height="335dp" android:orientation="vertical" 
 android:background="@color/black">


 <GridView 
                    android:id="@+id/jr_lookbook_grid" android:layout_width="fill_parent"
                    android:layout_height="335dp" android:numColumns="4"
                    android:verticalSpacing="10dp" android:horizontalSpacing="10dp"
                    android:columnWidth="90dp" android:stretchMode="columnWidth"
                    android:adjustViewBounds="true"
                    android:background="@drawable/shape"  
                    android:gravity="center"  android:layout_weight="1"/>
</LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout0209_img"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center"
    android:paddingTop="311dp">
         <Button  android:id="@+id/click"
                android:background="#AA000000" 
                   android:text="Load More Pictures..."
                  android:textColor="@color/white"                  
                   android:layout_width="fill_parent" android:layout_height="30dp"/>
    </LinearLayout>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout02_img"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:layout_alignParentBottom="true"
    android:background="@color/black"
                android:layout_alignParentLeft="true"> 
   <WebView 
        android:id="@+id/webview"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"         
        android:scrollbars="none" />
    <ImageView android:id="@+id/ImageView01" 
    android:layout_gravity="center_horizontal"
    android:scaleType="centerInside"
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent"
    android:adjustViewBounds="true">
</ImageView>  
    </LinearLayout>
   <LinearLayout android:id="@+id/LinearLayout02"     android:background="#AA000000" 
         android:layout_width="400px"
        android:layout_height="50dp"
        android:layout_gravity="bottom">
 <Button
    android:id="@+id/back
                android:layout_height="wrap_content"
               android:background="@drawable/back1"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="10dp" /
                 <Button
                  android:background="@drawable/forward5"
                android:id="@+id/next"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="150dp"/>
                  <Button
                  android:background="@drawable/menushare"
                android:id="@+id/photoshare"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_alignParentRight="true"
                android:layout_marginLeft="20dip" />
</LinearLayout>
</merge>

全部谢谢

2 个答案:

答案 0 :(得分:3)

您必须为大屏幕编写xml代码。我认为你将xml文件保存在res / layout文件夹中。如果它是你可以保留三个文件夹来区分各种屏幕,如res / layout-small,res / layout,res / layout-long。在这三个文件夹中,您可以为各种屏幕类型设置不同的对齐。对于中画面,请将xml代码保留在布局中,对于小屏幕 - 保持布局小 - 等等,并设置

    <supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"        
    android:anyDensity="true" />

AndroidManifest.xml中的这些行

答案 1 :(得分:0)

您可能还希望添加

android:xlargeScreens="true"

根据:http://android-developers.blogspot.com/2011/07/new-mode-for-apps-on-large-screens.html

所以你的屏幕元素看起来像:

<supports-screens 
        android:xlargeScreens="true"
        android:largeScreens="true"
        android:normalScreens="true" 
        android:smallScreens="true"
        android:anyDensity="true" />