我在2x2网格中有一个带有4个ImageButton的屏幕(使用TableLayout)。
我需要支持所有不同的屏幕尺寸。所以我创建了4个布局文件夹(小,中,大和超大)。
它适用于ImageButton的位置。但是在大型超大屏幕上,ImageButton的尺寸太小了。
我尝试使用4个文件夹来解决这个问题,使用mdpi和mdpi之间的x0.75,x1,x1.5和x2关系进行差异密度(drawable-ldpi,drawable-mdpi,drawable-hdpi和drawable-xhdpi)。其他文件夹。
但我认为这不起作用或者不是解决这个问题的正确方法。
这是正确的解决方法吗?
我担心小屏幕,但有高密度。或中密度低密度屏幕。在那些情况下,可能不起作用,对吗?
我的其他想法是在每个尺寸文件夹的每个布局上强制ImageButton的大小(以倾斜度量)。这是一个更好的解决方法吗?
我真的迷失了。我想应用最好/正确的解决方案。
有人能帮助我吗?
谢谢,抱歉我的英语不好
更新
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<TableRow
android:gravity="center"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_marginTop="60dip" >
<ImageButton
android:id="@+id/newCard_button"
android:layout_margin="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/selector_new_card_button"/>
<ImageButton
android:id="@+id/showLastTicket_button"
android:layout_margin="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/selector_show_last_ticket_button"/>
</TableRow>
<TableRow
android:gravity="center"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ImageButton
android:id="@+id/cancelLastTransaction_button"
android:layout_margin="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/selector_anulla_button"/>
<ImageButton
android:id="@+id/searchCustomer_button"
android:layout_margin="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/selector_search_customer_button"/>
</TableRow>
</TableLayout>
答案 0 :(得分:1)
好的,我建议的是使用相对较新的限定符sw600dp
和sw720dp
(最短宽度:600dp或720dp)来定义这些屏幕的较大尺寸 - 这些基本上是7“和10”片剂。您可以定义特定的dimen
变量并在values-sw600dp
资源文件夹中具有更大的值,或者实际在layout-sw600dp
资源文件夹中创建不同的布局,具体取决于需要多少变化
答案 1 :(得分:0)
您可以尝试通过提供50dip等精确值而不是换行内容来调整布局中的ImageButton宽度和高度值。 dip值将在不同的屏幕中以不同的大小出现,因为dip意味着Density Independent Pixels。