填充不同大小的布局 [英] Filling the layout of different size

查看:178
本文介绍了填充不同大小的布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用我添加一些图片。我使用DP为所有的测量。当我看到在Eclipse提供不同尺寸测试这一点,我可以看到它显示在不同的设备不同。

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

请让我知道避免这种情况,并在所有设备上创建一个类似的外观和感觉。

以下是布局

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:weightSum =15
机器人:方向=垂直><的LinearLayout
    机器人:ID =@ + ID / LL0
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_weight =5
    机器人:方向=横向>                <的LinearLayout
                机器人:ID =@ + ID / LL1
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =FILL_PARENT
                机器人:layout_weight =4
                机器人:方向=垂直>                    <的LinearLayout
                    机器人:ID =@ + ID / ll1A
                    机器人:layout_weight =3
                    机器人:layout_width =FILL_PARENT
                    机器人:layout_height =WRAP_CONTENT
                    机器人:方向=垂直>
                        <的ImageButton
                        机器人:ID =@ + ID / imOption1
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                        机器人:背景=@绘制/重复/>
                    < / LinearLayout中>
                    <的LinearLayout
                    机器人:ID =@ + ID / ll1B
                    机器人:layout_weight =3
                    机器人:layout_width =FILL_PARENT
                    机器人:layout_height =WRAP_CONTENT
                    机器人:方向=垂直>
                        <的ImageButton
                         机器人:ID =@ + ID / imOption2
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                         机器人:背景=@绘制/重复/>
                     < / LinearLayout中>                    <的LinearLayout
                        机器人:ID =@ + ID / ll1C
                        机器人:layout_weight =3
                        机器人:layout_width =FILL_PARENT
                        机器人:layout_height =WRAP_CONTENT
                        机器人:方向=垂直>                        <的ImageButton
                        机器人:ID =@ + ID / imOption3
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                        机器人:背景=@绘制/重复/>
                    < / LinearLayout中>
            < / LinearLayout中>                <的LinearLayout
                机器人:ID =@ + ID / [112
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =FILL_PARENT
                机器人:layout_weight =4
                机器人:方向=垂直>                    <的LinearLayout
                    机器人:ID =@ + ID / ll2A
                    机器人:layout_weight =3
                    机器人:layout_width =FILL_PARENT
                    机器人:layout_height =WRAP_CONTENT
                    机器人:方向=垂直>
                        <的ImageButton
                        机器人:ID =@ + ID / imOption4
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                        机器人:背景=@绘制/重复/>
                    < / LinearLayout中>
                    <的LinearLayout
                    机器人:ID =@ + ID / ll2B
                    机器人:layout_weight =3
                    机器人:layout_width =FILL_PARENT
                    机器人:layout_height =WRAP_CONTENT
                    机器人:方向=垂直>
                        <的ImageButton
                         机器人:ID =@ + ID / imOption5
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                         机器人:背景=@绘制/重复/>
                     < / LinearLayout中>                    <的LinearLayout
                        机器人:ID =@ + ID / ll2C
                        机器人:layout_weight =3
                        机器人:layout_width =FILL_PARENT
                        机器人:layout_height =WRAP_CONTENT
                        机器人:方向=垂直>                        <的ImageButton
                        机器人:ID =@ + ID / imOption6
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                        机器人:背景=@绘制/重复/>
                    < / LinearLayout中>
            < / LinearLayout中>
            <的LinearLayout
                机器人:ID =@ + ID / 113
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =FILL_PARENT
                机器人:layout_weight =4
                机器人:方向=垂直>                    <的LinearLayout
                    机器人:ID =@ + ID / ll3A
                    机器人:layout_weight =3
                    机器人:layout_width =FILL_PARENT
                    机器人:layout_height =WRAP_CONTENT
                    机器人:方向=垂直>
                        <的ImageButton
                        机器人:ID =@ + ID / imOption7
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                        机器人:背景=@绘制/重复/>
                    < / LinearLayout中>
                    <的LinearLayout
                    机器人:ID =@ + ID / ll3B
                    机器人:layout_weight =3
                    机器人:layout_width =FILL_PARENT
                    机器人:layout_height =WRAP_CONTENT
                    机器人:方向=垂直>
                        <的ImageButton
                         机器人:ID =@ + ID / imOption8
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                         机器人:背景=@绘制/重复/>
                     < / LinearLayout中>                    <的LinearLayout
                        机器人:ID =@ + ID / ll3C
                        机器人:layout_weight =3
                        机器人:layout_width =FILL_PARENT
                        机器人:layout_height =WRAP_CONTENT
                        机器人:方向=垂直>                        <的ImageButton
                        机器人:ID =@ + ID / imOption9
                        机器人:layout_width =90dp
                        机器人:layout_height =90dp
                        机器人:layout_gravity =中心
                        机器人:背景=@绘制/重复/>
                    < / LinearLayout中>
            < / LinearLayout中>            <的LinearLayout
                机器人:ID =@ + ID / LL4
                机器人:layout_width =WRAP_CONTENT
                机器人:layout_height =FILL_PARENT
                机器人:layout_weight =3
                机器人:weightSum =9
                机器人:背景=#FFFF99
                机器人:方向=垂直>
             <的LinearLayout
              机器人:ID =@ + ID / ll4A
              机器人:layout_alignParentLeft =真
              机器人:layout_width =FILL_PARENT
              机器人:layout_height =WRAP_CONTENT
              机器人:方向=垂直>
                  < ImageView的
                      机器人:ID =@ + ID / ivDisplayArea
                      机器人:layout_width =WRAP_CONTENT
                      机器人:layout_height =WRAP_CONTENT
                      机器人:scaleType =centerCrop
                      机器人:layout_gravity =中心
                      机器人:背景=@绘制/重复/>
                   < / LinearLayout中>
            < / LinearLayout中>
< / LinearLayout中>
 <的LinearLayout
    机器人:ID =@ + ID / LL5
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_weight =10
    机器人:方向=横向>
             <的TextView
             机器人:layout_width =WRAP_CONTENT
             机器人:layout_height =WRAP_CONTENT
             机器人:layout_gravity =中心
             机器人:比重=中心
             机器人:背景=#FF6633
             机器人:文字=奖励账户
             机器人:文字颜色=#FFFFFF
             机器人:文字样式=大胆/>            <的ImageButton
                 机器人:ID =@ + ID / bReward1
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =10dp
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward2
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward3
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward4
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward5
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward6
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward7
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward8
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward9
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>            <的ImageButton
                 机器人:ID =@ + ID / bReward10
                 机器人:layout_width =30dp
                 机器人:layout_height =30dp
                 机器人:layout_gravity =中心
                 机器人:layout_marginLeft =7DP
                 机器人:背景=@绘制/棒棒糖/>
< / LinearLayout中>
< / LinearLayout中>


解决方案

这实际上是正确的行为。 Android的工程,以确保无论图形项目保持屏幕密度或屏幕尺寸相同的物理尺寸。

因此​​,如果选择了旨在成为一个人的指尖的大小的一个按钮的图形图像,该图形应始终显示完全相同的物理尺寸(即尺寸为英寸),而不管器件特性


如果您preFER用于向以这样的方式进行布局屏幕,它看起来在所有设备上是相同的,并且被标定,因此相同的外观是更大或取决于屏幕尺寸,则有两个方法可以做到这一点:


  1. 而不是使用的密度无关像素(或相当于 DP ),
    使用的比例无关像素 SIP (或相当于 SP - 其中规模
    与系统字体大小)或像素(对于
    像素的)来定义您的图形组件尺寸。

  2. 而是将所有图片到你的RES /绘文件夹中,加
    不同大小的图像以相同的文件名的各种
    RES /绘-LDPI,RES /绘-MDPI,RES /绘 - 华​​电国际,而
    RES /绘-xhdpi文件夹中。

您将有图像尺寸进行试验,以得到它的权利,但比率定义如下:的启动图标:大小和格式

In my app I am adding some images. I am using dp for all the measurements. When I see test this in different sizes available in eclipse, I could see that it is shown different in different devices.

(see the lollipop is filled for different length).

Please let me know avoid this and to create a similar look-and-feel in all devices

Following is the layout.

<?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>

解决方案

This is actually correct behavior. Android works to make sure that the graphics items remain the same physical size regardless of screen density or screen size.

So, if you choose a button graphics image that is intended to be the size of a person's fingertip, that graphic should always be displayed the exact same physical size (i.e. size in inches) regardless of device characteristics.


If you prefer for your screen to be laid out in such a way that it looks the same on all devices, and is scaled so that the same look is bigger or smaller depending on screen size, then there are two ways to do this:

  1. Instead of using Density-Independent-Pixels "dip" (or the equivalent "dp"), use Scale-Independent-Pixels "sip" (or the equivalent "sp" - which scale with system font size) or "px" (for pixels) to define your graphics component sizes.
  2. Instead of adding all image to your "res/drawable" folder, add different size images with the same filenames to the various "res/drawable-ldpi", "res/drawable-mdpi", "res/drawable-hdpi", and "res/drawable-xhdpi" folders.

You will have to experiment with image sizes to get it right, but the ratios are defined here: Launcher Icons: Size and Format

这篇关于填充不同大小的布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆