我有一个切换按钮:
<ToggleButton
android:id="@+id/tv_pmpSwitch"
android:layout_width="0dp"
android:layout_weight="0.1"
android:layout_height="wrap_content"
android:background="@drawable/toggle_view"
android:layout_gravity="center_vertical"
android:gravity="center"
android:textOn=""
android:textOff=""
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_centerVertical="true"
android:paddingTop="16dp"
android:layout_marginLeft="16dp"
/>
我的toggle_view drawable是:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/ic_list_action"
android:state_checked="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/ic_grid_action"
android:state_checked="false"/>
</selector>
我不明白为什么背景中的图像被拉伸?我尝试了各种尺寸的图像。
答案 0 :(得分:8)
<ToggleButton
android:id="@+id/tv_pmpSwitch"
android:layout_width="0dp"
android:layout_height="28dp"
android:layout_weight="0.1"
android:background="@drawable/toggle_view"
android:textOff=""
android:textOn="" />
在您的代码上尝试此操作并仅调整布局高度参数!
修改强>
获取非拉伸图像的方法是使用位图而不是可绘制的。 使用以下作为您的背景xml。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<bitmap android:src="@drawable/ic_list_action"
android:gravity="center_vertical|left" />
</item>
<item>
<bitmap android:src="@drawable/ic_grid_action"
android:gravity="center_vertical|left" />
</item>
</layer-list>
答案 1 :(得分:4)
您可以在xml布局文件中进行简单设置:
android:minWidth="0dp"
android:minHeight="0dp"
图像不再拉伸
答案 2 :(得分:1)
在尝试了一些事情后,我发现了什么是错的:
weightSum是罪魁祸首,指定的重量正在拉伸图像。
<LinearLayout
android:layout_width="0dp"
android:layout_weight="0.1"
android:layout_height="wrap_content">
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_pmpSwitch"
android:background="@drawable/ic_toggle_list"
/>
</LinearLayout>
将整个代码放入LL父级中就可以了解