0

我在 2x2 网格中有一个带有 4 个 ImageButton 的屏幕(使用 TableLayout)。

我需要支持所有不同的屏幕尺寸。所以我创建了 4 个布局文件夹(小、中、大和特大)。

它适用于 ImageButton 的位置。但是在大屏幕和超大屏幕上,ImageButton 的尺寸太小了。

我尝试使用 mdpi 和其他文件夹之间的 x0.75、x1、x1.5 和 x2 关系使用 4 个不同密度的文件夹(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>
4

2 回答 2

1

好的,所以我建议使用相对较新的限定符sw600dpsw720dp(最短宽度:600dp 或 720dp)为这些屏幕定义更大的尺寸——基本上是 7 英寸和 10 英寸的平板电脑。您可以定义一个特定dimen变量并在资源文件夹中具有更大的值values-sw600dp,或者实际上在资源文件夹中完全创建不同的布局layout-sw600dp,具体取决于需要更改的程度。

于 2012-08-09T19:00:16.563 回答
0

您可以尝试通过提供精确值(例如 50dip 而不是换行内容)来调整布局中 ImageButton 的宽度和高度值。dip 值将在不同的屏幕中以不同的大小出现,因为 dip 表示与密度无关的像素。

于 2012-08-09T19:51:05.827 回答