填写不同大小的布局

时间:2013-03-25 06:48:26

标签: android android-layout

在我的应用中,我正在添加一些图像。我正在使用dp进行所有测量。当我看到在eclipse中以不同的大小测试它时,我可以看到它在不同的设备中显示不同。

enter image description here

(参见棒棒糖填充不同的长度)。

请让我知道,避免这种情况,并在所有设备中创建类似的外观

以下是布局。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="15" 
android:orientation="vertical">  

<LinearLayout
    android:id="@+id/ll0"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="5"  
    android:orientation="horizontal" > 

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

                    <LinearLayout
                    android:id="@+id/ll1A" 
                    android:layout_weight="3" 
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        <ImageButton
                        android:id="@+id/imOption1"
                        android:layout_width="90dp"
                        android:layout_height="90dp" 
                        android:layout_gravity="center"
                        android:background="@drawable/repeat" />
                    </LinearLayout>


                    <LinearLayout
                    android:id="@+id/ll1B" 
                    android:layout_weight="3" 
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        <ImageButton
                         android:id="@+id/imOption2"
                        android:layout_width="90dp"
                        android:layout_height="90dp"
                        android:layout_gravity="center" 
                         android:background="@drawable/repeat"/> 
                     </LinearLayout>

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

                        <ImageButton
                        android:id="@+id/imOption3"
                        android:layout_width="90dp"
                        android:layout_height="90dp"
                        android:layout_gravity="center" 
                        android:background="@drawable/repeat"/>
                    </LinearLayout>
            </LinearLayout> 

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

                    <LinearLayout
                    android:id="@+id/ll2A" 
                    android:layout_weight="3" 
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        <ImageButton
                        android:id="@+id/imOption4"
                        android:layout_width="90dp"
                        android:layout_height="90dp" 
                        android:layout_gravity="center"
                        android:background="@drawable/repeat" />
                    </LinearLayout>


                    <LinearLayout
                    android:id="@+id/ll2B" 
                    android:layout_weight="3" 
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        <ImageButton
                         android:id="@+id/imOption5"
                        android:layout_width="90dp"
                        android:layout_height="90dp"
                        android:layout_gravity="center" 
                         android:background="@drawable/repeat"/> 
                     </LinearLayout>

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

                        <ImageButton
                        android:id="@+id/imOption6"
                        android:layout_width="90dp"
                        android:layout_height="90dp"
                        android:layout_gravity="center" 
                        android:background="@drawable/repeat"/>
                    </LinearLayout>
            </LinearLayout>


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

                    <LinearLayout
                    android:id="@+id/ll3A" 
                    android:layout_weight="3" 
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        <ImageButton
                        android:id="@+id/imOption7"
                        android:layout_width="90dp"
                        android:layout_height="90dp" 
                        android:layout_gravity="center"
                        android:background="@drawable/repeat" />
                    </LinearLayout>


                    <LinearLayout
                    android:id="@+id/ll3B" 
                    android:layout_weight="3" 
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                        <ImageButton
                         android:id="@+id/imOption8"
                        android:layout_width="90dp"
                        android:layout_height="90dp"
                        android:layout_gravity="center" 
                         android:background="@drawable/repeat"/> 
                     </LinearLayout>

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

                        <ImageButton
                        android:id="@+id/imOption9"
                        android:layout_width="90dp"
                        android:layout_height="90dp"
                        android:layout_gravity="center" 
                        android:background="@drawable/repeat"/>
                    </LinearLayout>
            </LinearLayout>  

            <LinearLayout
                android:id="@+id/ll4"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="3"
                android:weightSum="9"
                android:background="#FFFF99" 
                android:orientation="vertical" >  


             <LinearLayout
              android:id="@+id/ll4A"
              android:layout_alignParentLeft="true" 
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical" >
                  <ImageView
                      android:id="@+id/ivDisplayArea"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:scaleType="centerCrop" 
                      android:layout_gravity="center"
                      android:background="@drawable/repeat"/>
                   </LinearLayout>  
            </LinearLayout>
</LinearLayout>
 <LinearLayout
    android:id="@+id/ll5"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="10"  
    android:orientation="horizontal"> 
             <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
             android:gravity="center"
             android:background="#FF6633"
             android:text="Reward Account "
             android:textColor="#FFFFFF"
             android:textStyle="bold" />

            <ImageButton
                 android:id="@+id/bReward1"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="10dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward2"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward3"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward4"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward5"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward6"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward7"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward8"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward9"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 

            <ImageButton
                 android:id="@+id/bReward10"
                 android:layout_width="30dp"
                 android:layout_height="30dp"
                 android:layout_gravity="center" 
                 android:layout_marginLeft="7dp"
                 android:background="@drawable/lollipop" /> 


</LinearLayout>




</LinearLayout>

1 个答案:

答案 0 :(得分:1)

这实际上是正确的行为。无论屏幕密度或屏幕大小如何,Android都可以确保图形项保持相同的物理尺寸。

因此,如果您选择的按钮图形图像的大小与人的指尖大小相同,则无论设备特性如何,该图形都应始终显示完全相同的物理尺寸(即以英寸为单位)。


如果您希望屏幕布局的方式使其在所有设备上看起来都相同,并且根据屏幕尺寸进行缩放以使相同的外观更大或更小,那么有两种方法可以做这样:

  1. 而不是使用 Density-Independent-Pixels dip”(或等效的“dp”), 使用与比例无关的像素sip”(或等效的“sp” - 这个比例 系统字体大小)或“px”(for pixels )来定义图形组件大小。
  2. 不是将所有图像添加到“res / drawable”文件夹中,而是添加 具有相同文件名的不同大小的图像 “res / drawable-ldpi”,“res / drawable-mdpi”,“res / drawable-hdpi”,以及 “res / drawable-xhdpi”文件夹。
  3. 您必须尝试使用​​图像尺寸才能使其正确,但比率在此处定义:Launcher Icons: Size and Format