2

我想在我的程序顶部有两个按钮,将用户带到不同的活动中。我在格式化时遇到了很多麻烦。

如何使按钮根据屏幕尺寸按比例拉伸?现在,对于一种屏幕尺寸,它们看起来还不错,然后我将切换到另一种屏幕尺寸,它会显得全部被弄脏或拉伸。我已经尝试了所有不同的 ScaleTypes,但似乎都没有什么不同。我也去了,并使用Shubhayu 的回答按比例将所有图像保存到正确的尺寸,如 xhdpi、hdpi 等。

到目前为止,这是我的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/brushed_metal_background_dark"
tools:context=".HomeActivity" >

<ImageButton
    android:id="@+id/incidentsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/incident_bar2"
    android:contentDescription="Incidents"
    android:onClick="chooseIncident"
    android:scaleType="center" />

<ImageButton
    android:id="@+id/operationalPeriodsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@drawable/operationalperiod_bar2"
    android:contentDescription="Operational Periods"
    android:onClick="chooseOperationalPeriod"
    android:scaleType="fitCenter" />

4

3 回答 3

2

更改android:backgroundandroid:src将保持纵横比。用于android:scaleType="centerInside"将整个图像放入按钮区域内,并可选择android:adjustViewBounds=true用于删除空白区域。例子:

<ImageButton
    android:id="@+id/incidentsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:contentDescription="Incidents"
    android:onClick="chooseIncident"
    android:src="@drawable/incident_bar2"
    android:scaleType="centerInside"
    android:adjustViewBounds="true"/>

<ImageButton
    android:id="@+id/operationalPeriodsSelect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:contentDescription="Operational Periods"
    android:onClick="chooseOperationalPeriod"
    android:src="@drawable/operationalperiod_bar2"
    android:scaleType="centerInside"
    android:adjustViewBounds="true"/>
于 2012-12-16T21:03:29.443 回答
0

我猜您正在尝试在屏幕顶部均匀调整按钮的大小。如果是这种情况,那么您应该设置android:layout_width="0dp".

于 2012-12-16T20:35:08.973 回答
0

只需使用 android:layout_width = "wrap_content"

于 2013-04-17T09:28:56.850 回答