2013-03-25 127 views
1

在我的应用程序中,我添加了一些图像。我正在使用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

这实际上是正确的行为。 Android努力确保图形项目保持相同的物理大小,而不管屏幕密度或屏幕大小如何。因此,如果您选择一个按钮图形图像,该图像的大小应该是人的指尖大小,那么无论设备特征如何,该图形都应始终显示完全相同的物理尺寸(即以英寸为单位的尺寸)。


如果您更喜欢以这样的方式来布置你的屏幕,它看起来在所有设备上是相同的,并且被标定,因此相同的外观是更大或更小取决于屏幕的大小,则有两种方法可以做到这一点:

  1. 而不是使用密度无关像素dip”(或相当于“dp‘), 使用规模无关像素sip”(或同等学历“sp“ - 其中系统字体大小为 )或”px“(用于 像素)来定义您的图形组件大小。
  2. 而不是将所有图像添加到您的“res/drawable”文件夹中,将 具有相同文件名的不同大小图像添加到各种 “res/drawable-ldpi”,“res/drawable-mdpi”,“res/drawable -hdpi“和 ”res/drawable-xhdpi“文件夹。

你将不得不与图像尺寸实验得到它的权利,但比值定义如下:Launcher Icons: Size and Format

+0

我喜欢在所有的设备同样的观点,这意味着屏幕应该在手机相似,以及为平板电脑。我们有没有选择它。 – iappmaker 2013-03-25 09:10:55

+0

当然,还有一些选项可以保持“在手机和平​​板电脑中看起来很相似”。请参阅我上面对答案的编辑。 – 2013-03-25 17:13:36