我是Android
的新手,我正在使用Eclipse ADT
创建一个简单的应用程序。此应用程序有一个按钮,可根据用户点击更改其背景图像。
我注意到我的项目中有4个图像文件夹:drawable-hdpi, drawable-ldpi, drawable-mdpi, and drawable-xhdpi
。
我还注意到当前的图像(启动器图标)都是不同的尺寸。
这是否意味着我必须使用一些图像编辑软件为每个图像的每个分辨率创建一个图像?或者(希望)有一种方法可以导入图像并自动完成这项工作吗?
谢谢!
答案 0 :(得分:45)
图像和其他可视文件存储在一个或多个可绘制目录中。如果仅在一个目录中,Android将根据需要缩放图像。如果使用多个目录,Android将选择适当大小的图像。
(附注:XML文件也可以编写并存储为drawables。这些类型的文件可以控制何时根据视图状态或其他视觉设置(如渐变,边框等)使用多个图像。 )
那么,应该你做什么?
为了获得最佳效果(来自Android developer docs):
要生成这些图像,您应该以矢量格式开始使用原始资源,并使用以下大小比例为每个密度生成图像:
这意味着如果为xhdpi设备生成200x200图像,则应在150x150中为hdpi生成相同的资源,为tvdpi生成133x133,为mdpi生成100x100,最后为ldpi设备生成75x75图像。
如果您只想使用一张图片并让Android为您量身定做:
根据Dashboard on the Android Developer site,超过75%的Android设备现在拥有hdpi或更高的分辨率。因此,例如,如果您以hdpi创建一个图像,它将在大约三分之一的设备上看起来很完美,一些设备可以放大,而缩小约25%的设备。总的来说,我认为你缩小规模比扩大规模更好。
答案 1 :(得分:3)
这是否意味着我必须使用一些图像编辑软件为每个图像的每个分辨率创建一个图像?或者(希望)有一种方法可以导入图像并自动完成这项工作吗?
如果您已经拥有图像的高分辨率来源(或矢量图形格式),则可以使用Android Asset Studio从您自己的源图像生成每密度的图标/图像(减去xxhdpi)。您还可以从默认的Android剪贴画创建图标/图像,这些图片/图像可以是各种Android版本的主题。这将为您节省一些使用图像编辑工具调整大小和保存的麻烦。