缩放选择器drawable

时间:2014-06-02 17:41:03

标签: android android-drawable

我在选择器中使用了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"/>

解决此问题的标准方法是什么?

1 个答案:

答案 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是:

  • 120表示ldpi,比例因子= 0.75
  • 160表示mdpi,比例因子= 1.0
  • 240表示hdpi,比例因子= 1.5
  • 320表示xhdpi,比例因子= 2.0
  • 480表示xxhdpi,比例因子= 3.0
  • 640表示xxxhdpi,比例因子= 4.0

通常情况下,缩放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,以减少整体字节数而不会降低质量。