不同屏幕布局上的ImageButton大小

时间:2012-08-09 18:37:54

标签: android xml android-layout imagebutton

我在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>

2 个答案:

答案 0 :(得分:1)

好的,我建议的是使用相对较新的限定符sw600dpsw720dp(最短宽度:600dp或720dp)来定义这些屏幕的较大尺寸 - 这些基本上是7“和10”片剂。您可以定义特定的dimen变量并在values-sw600dp资源文件夹中具有更大的值,或者实际在layout-sw600dp资源文件夹中创建不同的布局,具体取决于需要多少变化

答案 1 :(得分:0)

您可以尝试通过提供50dip等精确值而不是换行内容来调整布局中的ImageButton宽度和高度值。 dip值将在不同的屏幕中以不同的大小出现,因为dip意味着Density Independent Pixels。