如何创建最高质量的Android按钮?

时间:2013-01-23 16:14:16

标签: android android-layout android-widget photoshop

我一直在为我的应用设计/创建按钮,但当我将它们与非常成功的商业应用(如Google+或Facebook)进行比较时,图像质量看起来并不相同。我查看了模拟器和设备上的按钮。

我使用Photoshop CS5并始终确保我在RGB和300 DPI中设计.png。 enter image description here

然后我在XML中创建指定按下和聚焦状态的按钮:

about_btn.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/about_down"
          android:state_pressed="true" />
    <item android:drawable="@drawable/about_down"
          android:state_focused="true" />
    <item android:drawable="@drawable/about_up" />
</selector>

然后我按照我的布局使用按钮:

main.xml中

        <Button
            android:id="@+id/about_button_xml"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/about_btn"
            android:paddingTop="5dp" />

按钮在布局中的缩放方式是否存在某种类型的缺陷,或者我保存/设计按钮格式不正确,我使用的是错误的软件....我只是不确定。

您推荐什么设计规格和软件?任何建议或教程将不胜感激。

2 个答案:

答案 0 :(得分:3)

某些设备无法显示300 dpis,因此您的图像必须缩放。这是硬件限制。

这就是为什么你有res/drawable-xdpires/drawable-hdpi ...文件夹,为每个不同的DPI密度提供图像。

有关此主题的更多信息here

答案 1 :(得分:3)

为m0skit0的答案添加一点特异性:你应该设计为320dpi。取320dpi版本并将其放入drawable-xhdpi,并在drawable-hdpidrawable-mdpi中放置240和160 dpi缩放版本。如果您没有以设备屏幕的密度提供资源,系统尝试按比例放大较低密度的图像(如果提供了一个,则缩小较高密度的图像,但是它很少和Photoshop一样好,并且无法在必要时使用判断如何清晰地缩放图像的奇怪部分。

如果您只在drawable文件夹中提供图像,系统会因为历史原因而认为它是160dpi - 这几乎肯定不是您想要的;你最终会得到原始图像的模糊,过大和放大版本。

具体地说:drawable-mdpi或普通drawable中的100px图像将使用缩放在xhdpi屏幕上呈现为200px图像。如果您真的将〜320dpi的图像设计为100px,那么正确的方法是将100px版本放在drawable-xhdpi中,将50px版本放在drawable-mdpi中,将75px版本放在drawable-hdpi中。

谷歌在他们的网站上写了很多关于此的内容;看到他们的designer infodev info。目测:

Scaled icons (来自上述Android Designer网站的CC Attribution 2.5许可图片。)