我有RelativeLayout
3 LinearLayouts
我有按钮位置。每个布局中有2个按钮。
在不同尺寸的设备上,按钮尺寸保持不变: Nexus 7 -
Nexus 5 - !
但我希望按钮可以针对不同的屏幕尺寸调整大小。 这是布局文件的来源:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<LinearLayout
android:orientation="horizontal"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/superviserlinearLayout1"
android:layout_centerHorizontal="true"
android:paddingTop="5dp">
<Button
android:text="აგენტები"
android:id="@+id/superviserBtnAgents"
android:drawableTop="@drawable/admin"
android:textStyle="bold"
android:textSize="14sp"
android:layout_width="145dp"
android:layout_height="145dp" />
<Button
android:text="ობიექტები"
android:id="@+id/superviserBtnObjects"
android:drawableTop="@drawable/store"
android:textStyle="bold"
android:textSize="14sp"
android:layout_width="145dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/superviserlinearLayout1"
android:id="@+id/superviserlinearLayout2"
android:layout_centerHorizontal="true">
<Button
android:text="დებიტორები"
android:drawableTop="@drawable/money"
android:textStyle="bold"
android:textSize="14sp"
android:layout_width="145dp"
android:layout_height="145dp"
android:id="@+id/superviserBtnDebitors" />
<Button
android:text="საწყობი"
android:drawableTop="@drawable/production"
android:textStyle="bold"
android:textSize="14sp"
android:layout_width="145dp"
android:layout_height="145dp"
android:id="@+id/superviserBtnDepot" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/superviserlinearLayout2"
android:id="@+id/superviserlinearLayout3"
android:layout_centerHorizontal="true">
<Button
android:text="ინკასაცია"
android:drawableTop="@drawable/atm"
android:textStyle="bold"
android:textSize="14sp"
android:layout_width="145dp"
android:layout_height="145dp"
android:id="@+id/superviserBtnIncasation" />
<Button
android:text="შეტყობინებები"
android:drawableTop="@drawable/notes"
android:textStyle="bold"
android:textSize="14sp"
android:layout_width="match_parent"
android:layout_height="145dp"
android:id="@+id/superviserBtnNotes" />
</LinearLayout>
如何实现这一目标?
修改:我需要背景图片进行拉伸,即使它们看起来像素化。
答案 0 :(得分:1)
要支持不同的屏幕尺寸,您必须在相应的可绘制文件夹中放置适当大小的图像,根据谷歌这些是建议的尺寸:
xlarge screens are at least 960dp x 720dp (xxhdpi folder)
large screens are at least 640dp x 480dp (xhdpi folder)
normal screens are at least 470dp x 320dp (hdpi folder or mdpi (depends))
small screens are at least 426dp x 320dp (ldpi)
注意:这些最小屏幕尺寸在Android 3.0之前没有明确定义,因此您可能会遇到一些在正常和大型之间错误分类的设备。这些也基于屏幕的物理分辨率,因此可能因设备而异 - 例如,系统条的1024x720平板电脑实际上由于系统条使用它而使应用程序可用的空间更小。 -Google
答案 1 :(得分:1)
删除按钮的硬编码宽度。
将LinearLayout宽度更改为match_parent
而不是wrap_content
,并使用按钮的权重。
类似的东西:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minHeight="25px"
android:minWidth="25px"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/superviserlinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:minHeight="25px"
android:minWidth="25px"
android:orientation="horizontal"
android:paddingTop="5dp"
android:weightSum="2">
<Button
android:id="@+id/superviserBtnAgents"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="145dp"
android:drawableTop="@drawable/ic_launcher"
android:text="აგენტები"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/superviserBtnObjects"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:drawableTop="@drawable/ic_launcher"
android:text="ობიექტები"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/superviserlinearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/superviserlinearLayout1"
android:layout_centerHorizontal="true"
android:minHeight="25px"
android:minWidth="25px"
android:orientation="horizontal"
android:weightSum="2">
<Button
android:id="@+id/superviserBtnDebitors"
android:layout_width="0dp"
android:layout_height="145dp"
android:drawableTop="@drawable/ic_launcher"
android:text="დებიტორები"
android:textSize="14sp"
android:textStyle="bold"
android:layout_weight="1"/>
<Button
android:id="@+id/superviserBtnDepot"
android:layout_width="0dp"
android:layout_height="145dp"
android:drawableTop="@drawable/ic_launcher"
android:text="საწყობი"
android:textSize="14sp"
android:textStyle="bold"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:id="@+id/superviserlinearLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/superviserlinearLayout2"
android:layout_centerHorizontal="true"
android:minHeight="25px"
android:minWidth="25px"
android:weightSum="2"
android:orientation="horizontal" >
<Button
android:id="@+id/superviserBtnIncasation"
android:layout_width="0dp"
android:layout_height="145dp"
android:drawableTop="@drawable/ic_launcher"
android:text="ინკასაცია"
android:textSize="14sp"
android:textStyle="bold"
android:layout_weight="1"/>
<Button
android:id="@+id/superviserBtnNotes"
android:layout_width="0dp"
android:layout_height="145dp"
android:drawableTop="@drawable/ic_launcher"
android:text="შეტყობინებები"
android:textSize="14sp"
android:textStyle="bold"
android:layout_weight="1"/>
</LinearLayout>
</RelativeLayout>
希望它有所帮助。