我一直在为我的应用设计/创建按钮,但当我将它们与非常成功的商业应用(如Google+或Facebook)进行比较时,图像质量看起来并不相同。我查看了模拟器和设备上的按钮。
我使用Photoshop CS5并始终确保我在RGB和300 DPI中设计.png。
然后我在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" />
按钮在布局中的缩放方式是否存在某种类型的缺陷,或者我保存/设计按钮格式不正确,我使用的是错误的软件....我只是不确定。
您推荐什么设计规格和软件?任何建议或教程将不胜感激。
答案 0 :(得分:3)
某些设备无法显示300 dpis,因此您的图像必须缩放。这是硬件限制。
这就是为什么你有res/drawable-xdpi
,res/drawable-hdpi
...文件夹,为每个不同的DPI密度提供图像。
有关此主题的更多信息here。
答案 1 :(得分:3)
为m0skit0的答案添加一点特异性:你应该设计为320dpi。取320dpi版本并将其放入drawable-xhdpi
,并在drawable-hdpi
和drawable-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 info和dev info。目测:
(来自上述Android Designer网站的CC Attribution 2.5许可图片。)