我希望程序顶部有两个按钮,用户可以进行不同的活动。我在格式化方面遇到了很多麻烦。
如何制作按钮以根据屏幕尺寸按比例拉伸?现在,它们对于一个屏幕尺寸看起来没问题,然后我将切换到另一个屏幕尺寸,它将显示为全部按下或拉伸。我已经尝试了所有不同的ScaleTypes,似乎没有任何区别。我也去了,并使用Shubhayu's answer按比例将所有图像保存到xmpi,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" />
答案 0 :(得分:2)
将android:background
更改为android: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"/>
答案 1 :(得分:0)
我猜你正试图在屏幕顶部均匀地调整按钮大小。如果是这种情况,那么您应该设置android:layout_width="0dp"
。
答案 2 :(得分:0)
只需使用android:layout_width =“wrap_content”