我在选择器中使用了drawable。图像/ drawable是一个星形,选择器由复选框使用,应代表一个收藏夹按钮。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/star" />
<item android:state_checked="true" android:drawable="@drawable/star_faved" />
</selector>
图像尺寸为256x256像素,与复选框一起使用时不会缩放。我试图将它用作9patch,但无法使其工作。
<CheckBox android:layout_width="20dp"
android:layout_height="20dp"
android:text="read"
android:button="@drawable/favorite_checkbox"
android:focusable="false"/>
解决此问题的标准方法是什么?
答案 0 :(得分:2)
256x256 px似乎足以成为xxxhdpi资源 所以,我想你是以640 dpi的速度制作的。
在这种情况下,9补丁无济于事,因为它会拉伸图形。
确保您在xxxhdpi(标准化)分辨率 640 dpi
时至少拥有 xxxhdpi 资源 I used the icon from iconmonstr.com
...来自图标网站的图片质量非常低(对于个人电脑来说足够好),达到72 dpi(通常/有时96 dpi - 很少,质量更好)。
想象一下,最低的Android dpi(对于ldpi屏幕)是120 dpi,接近双倍...... 如果您需要QUALITY,则使用的dpi是:
通常情况下,缩放DOWN几乎可以完美地工作 因此,拥有xxxhdpi或xhdpi资源将会很好地扩展。
现在,你必须提高质量 72dpi =&gt; 640dpi - 但保留相同尺寸(将其带到640 dpi,它会自动缩放到更大的尺寸,然后再将尺寸缩小到256 * 256,将dpi设置为640) 。
将这些图像保存到/res/drawable-xxxhdpi
文件夹
<强> [编辑] 强>
CheckBox的正确图片尺寸应为48 * 4( 192 )px,作为完整资产(意味着图像+某个包裹,每边16张,透明)和40 * 4( 160 )px作为图形本身(“OPTICAL SQUARE”),用于xxxhdpi分辨率。
[编辑2]
48 , mdpi 分辨率( 160 dpi ,比例系数= 1.0 )
4.0 是xxxhdpi分辨率的比例因子
由于图像将变为BIG(重量),我建议您使用OptiPNG,以减少整体字节数而不会降低质量。