Android Switch拇指图像拉伸
Posted
技术标签:
【中文标题】Android Switch拇指图像拉伸【英文标题】:Android Switch thumb image stretched 【发布时间】:2014-07-01 08:25:11 【问题描述】:我需要在 android 应用程序中自定义 Switch。 我正在使用此代码:
<Switch
android:id="@+id/switchmode"
android:layout_
android:layout_
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:textOn=""
android:textOff=""
android:switchMinWidth="0dp"
android:thumb="@drawable/switch_bg"
android:track="@drawable/track_bg"
android:layout_marginBottom="20dp"
android:layout_marginRight="20dp" />
track_bg 文件是:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/switch_track" />
</selector>
switch_bg 文件是:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/switch_enable" />
<item android:state_pressed="true" android:drawable="@drawable/switch_press" />
<item android:state_checked="true" android:drawable="@drawable/switch_check_on" />
<item android:drawable="@drawable/switch_enable" />
</selector>
switch_check_on 为 32 x 31
switch_enable 为 32 x 31
switch_press 为 32 x 31
switch_track 为 64 x 31
结果是一个拉伸的图像(它应该是一个圆形但它被压扁了):
https://www.dropbox.com/s/07iigspuh3dpfnh/switchstreched.jpg
有什么明显的错误吗?
【问题讨论】:
【参考方案1】:创建9-patch
图像并指定Android
应如何拉伸它。你可以阅读更多here
【讨论】:
应该修补什么?轨道文件或拇指文件? 两者。打开图像 9-patch 编辑器并检查 Android 将如何拉伸它。拉伸不取决于您的开关工作逻辑,而是 - android 设备分辨率和密度。因此,如果您有 1 个适用于所有分辨率和密度的图像资源 - 将其设为 9-patch,它将按指定规则进行拉伸。 看看在这个示例项目中是如何实现的github.com/hearbeathorror/Switch-Compat-Changing-Colors/tree/…以上是关于Android Switch拇指图像拉伸的主要内容,如果未能解决你的问题,请参考以下文章