在我的应用中,我正在添加一些图像。我正在使用dp进行所有测量。当我看到在eclipse中以不同的大小测试它时,我可以看到它在不同的设备中显示不同。
(参见棒棒糖填充不同的长度)。
请让我知道,避免这种情况,并在所有设备中创建类似的外观
以下是布局。
<?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>
答案 0 :(得分:1)
这实际上是正确的行为。无论屏幕密度或屏幕大小如何,Android都可以确保图形项保持相同的物理尺寸。
因此,如果您选择的按钮图形图像的大小与人的指尖大小相同,则无论设备特性如何,该图形都应始终显示完全相同的物理尺寸(即以英寸为单位)。
如果您希望屏幕布局的方式使其在所有设备上看起来都相同,并且根据屏幕尺寸进行缩放以使相同的外观更大或更小,那么有两种方法可以做这样:
dip
”(或等效的“dp
”),
使用与比例无关的像素“sip
”(或等效的“sp
” - 这个比例
系统字体大小)或“px
”(for
pixels )来定义图形组件大小。您必须尝试使用图像尺寸才能使其正确,但比率在此处定义:Launcher Icons: Size and Format