平板电脑的Android多屏支持

时间:2012-09-19 11:49:01

标签: android android-layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:id="@+id/mainlayout"    
    android:layout_width="fill_parent"     
    android:layout_height="450dp"     
    android:background="#f8f9fe" >      

    <LinearLayout       
        android:id="@+id/linearLayout1"       
        android:layout_width="fill_parent"              
        android:layout_height="wrap_content"                   
        android:orientation="vertical" >                  

        <LinearLayout                  
            android:id="@+id/extremelysorry"                  
            android:layout_width="fill_parent"                  
            android:layout_height="wrap_content"                 
            android:layout_marginLeft="10dp"                    
            android:layout_marginRight="20dp"                        
            android:layout_marginTop="30dp"            
            android:background="@drawable/pressicon"        
            android:orientation="vertical" >

            <TextView     
                android:id="@+id/extremelysorry1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="1dp"
                android:padding="5dip"
                android:text="  &quot;We are extremely sorry, request your valuable ."
                android:textColor="#FFFFFF"
                android:textSize="20dip"
                android:textStyle="bold" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/layout_name"
                android:layout_width="fill_parent"
                android:layout_height="35dp"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="20dp"
                android:background="@drawable/pressicon"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/signetno"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="1dp"
                    android:padding="5dip"
                    android:text=" Please enter your Loyalty Card No/Name,Mobile No/Name "
                    android:textColor="#FFFFFF"
                    android:textSize="20dip"
                    android:textStyle="bold" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/LinearLayout03"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="70dp"
                android:orientation="vertical" android:layout_marginTop="30dp">

                <LinearLayout
                    android:id="@+id/LinearLayout02"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp" >

                    <LinearLayout
                        android:layout_width="250dp"
                        android:layout_height="wrap_content"
                        android:background="@drawable/labelbg" >

                        <TextView
                            android:id="@+id/loyaltyLable"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="7dp"
                            android:layout_marginTop="3dp"
                            android:padding="5dp"
                            android:text="Membership Card No."
                            android:textColor="#FFFFFF"
                            android:textSize="20dp" />

                    </LinearLayout>

                    <EditText
                        android:id="@+id/ed_cardno"
                        android:layout_width="wrap_content"
                        android:layout_height="30dp"
                        android:layout_marginLeft="50dp"
                        android:layout_weight="1"
                        android:background="@drawable/textbox_n"
                        android:ems="10"
                        android:hint="Touch here to enter"
                        android:imeOptions="actionDone|flagNoExtractUi"
                        android:inputType="number"
                        android:paddingLeft="5dp"
                        android:singleLine="true"
                        android:textSize="20dp" />

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/layout_age"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingTop="5dp" >

                    <LinearLayout
                        android:layout_width="250dp"
                        android:layout_height="wrap_content"
                        android:background="@drawable/labelbg" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="7dp"
                            android:layout_marginTop="3dp"
                            android:padding="5dp"
                            android:text="Name"
                            android:textColor="#FFFFFF"
                            android:textSize="20dp" />

                    </LinearLayout>

            <EditText
                android:id="@+id/ed_name"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_marginLeft="50dp"
                android:layout_weight="1"
                android:autoText="true"
                android:background="@drawable/textbox_n"
                android:ems="10"
                android:hint="Touch here to enter"
                android:imeOptions="actionDone|flagNoExtractUi"
                android:paddingLeft="5dp"
                android:singleLine="true"
                android:textSize="20dp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/layout_emailid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="5dp" >

            <LinearLayout
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:background="@drawable/labelbg" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="7dp"
                    android:layout_marginTop="3dp"
                    android:padding="5dp"
                    android:text="Mobile No"
                    android:textColor="#FFFFFF"
                    android:textSize="20dp" />

            </LinearLayout>

            <EditText
                android:id="@+id/ed_mobileno"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_marginLeft="50dp"
                android:layout_weight="1"
                android:background="@drawable/textbox_n"
                android:ems="10"
                android:hint="10digit Mobile number"
                android:imeOptions="actionDone|flagNoExtractUi"
                android:numeric="integer"
                android:paddingLeft="5dp"
                android:phoneNumber="true"
                android:singleLine="true"
                android:textSize="20dp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/layout_cardno"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="5dp" >

            <LinearLayout
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:background="@drawable/labelbg" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="7dp"
                    android:layout_marginTop="3dp"
                    android:padding="5dp"
                    android:text="Email ID"
                    android:textColor="#FFFFFF"
                    android:textSize="20dp" />

            </LinearLayout>

            <EditText
                android:id="@+id/ed_emailid"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_marginLeft="50dp"
                android:layout_weight="1"
                android:background="@drawable/textbox_n"
                android:ems="10"
                android:hint="Touch here to enter"
                android:imeOptions="actionDone|flagNoExtractUi"
                android:inputType="textEmailAddress"
                android:paddingLeft="5dp"
                android:singleLine="true"
                android:textSize="20dp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/layout_comeagain"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="5dp" >

        </LinearLayout>

        <LinearLayout
            android:id="@+id/LinearLayout01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

                <Button
                android:id="@+id/back"
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:focusable="true"
                android:background="@drawable/back_button"
                android:textColor="#ff29549f" />

                <Button
                android:id="@+id/comment_next"
                android:layout_width="wrap_content"
                android:layout_height="37dp"
                android:layout_marginLeft="420dp"
                android:background="@drawable/next_button"
                android:focusable="true"
                android:textColor="#ff29549f" />

            <Chronometer
                android:id="@+id/start_quiz_time1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="3.19"
                android:textSize="15sp"
                android:visibility="invisible" />

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="30dp"
        android:background="@drawable/pressicon"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/manadatory"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="1dp"
            android:padding="5dip"
            android:text="  *Mandatory: The information is confidential &amp; will not"
            android:textColor="#FFFFFF"
            android:textSize="20dip" />

        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

这是我的代码,但它不支持多个屏幕。小部件流离失所。

如何更改此代码,就好像我在任何平板电脑上运行它一样,在具有不同屏幕尺寸和密度的每台平板电脑上看起来都一样?

3 个答案:

答案 0 :(得分:1)

这是因为您在dp中为布局高度和宽度设置了大小。

您需要更多地了解重量,您的布局会根据屏幕尺寸进行调整。

答案 1 :(得分:1)

将以下代码写入Androidmanifest.xml文件

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

请参阅以下链接以获取更多信息。

Screen Size Supports

答案 2 :(得分:1)

在设计应用程序时,需要注意两个重要参数 应该在多个设备上运行:

  • 尺寸(设备的物理尺寸)
  • 设备密度

大小:android中设备的大小未定义为唯一的物理值,而是定义为范围 它们是:小的,正常的,大的和xlarge。

密度:密度也定义为范围 它们是:ldpi,mdpi,hdpi和xhdpi。

enter image description here

对于处理大小,您需要使用多个布局,每个类型对应一个大小,并且您需要为每个布局使用不同的dp值作为视图的高度和宽度,因为小型和大型设备的大小不会一样的

为了处理密度,您需要针对不同的屏幕密度使用不同的抽屉,即您需要在不同的可绘制文件夹中放置不同的密度抽屉。 例如:
这些是特定可绘制的分辨率

  • 低密度36x36(置于drawable-ldpi)
  • 中等密度48x48(置于drawable-mdpi)
  • 72x72用于高密度(放置在drawable-hdpi中)
  • 96x96,用于超高密度(置于drawable-xhdpi)

此分辨率变化的比率为3:4:6:8(ldpi:mdpi:hdpi:xhdpi)

有关进一步阅读,请参阅此Android开发人员的链接:
http://developer.android.com/guide/practices/screens_support.html