2013-02-25 140 views
18

我是Android的新品牌,我使用Eclipse ADT创建了一个简单的应用程序。此应用程序有一个按钮,可以根据用户的点击更改其背景图像。Android - 将图像添加到项目

我注意到我的项目中有4个文件夹用于图像:drawable-hdpi, drawable-ldpi, drawable-mdpi, and drawable-xhdpi

我也注意到,目前在那里的图像(发射器图标)都是不同的大小。

这是否意味着我必须使用一些图像编辑软件为每个图像的每个分辨率创建一个图像?或者(希望)有没有办法导入图像,并自动为我完成?

谢谢!

回答

45

图像和其他视觉文件存储在一个或多个可绘制目录中。如果只在一个目录中,Android会根据需要缩放图像。如果使用多个目录,则Android将选择适当大小的图像。

  • 抽拉-LDPI - 低浓度的图像
  • 抽拉-MDPI - 中等密度图像
  • 抽拉-HDPI - 高密度图像
  • 抽拉-xhdpi - 额外的高密度图像(即视网膜状显示)
  • 抽拉-xxhdpi - 额外额外高密度图像(如Nexus 10的设备,三星Galaxy S4,HTC One和索尼的Xperia Z)
  • 抽拉-xxxhdpi - 三额外高密度图像(Nexus 6 and 9

(注意:XML文件也可以作为绘图书写和存储。这些类型的文件可以控制何时根据视图状态或其他视觉设置(如渐变,边框等)使用多个图像)

那么,你应该做什么

为了达到最佳效果(从Android developer docs):

生成这些图片,你应该在矢量格式的原始资源开始并用下面的大小规模为每一个密度图像:

  • xxxhdpi:4.0
  • xxhdpi:3.0
  • xhdpi:2.0
  • HD PI:1.5
  • tvdpi:1.33(只有电视)
  • MDPI:1.0(基线)
  • LDPI:0.75

这意味着,如果您生成xhdpi设备一个200x200的图像,你应该产生hdpi为150x150,tvdpi为133x133,mdpi为100x100,最后是ldpi设备的75x75图片。

如果你只是想用一个图像,然后让Android规模为您提供:Android设备的

超过75%现在有华电国际或更高的分辨率,根据Dashboard on the Android Developer site。因此,例如,如果您在hdpi上创建一个图像,它将在大约三分之一的设备上看起来很完美,可以放大一些,然后缩小约25%的设备。总的来说,我认为你的扩大规模比扩大规模更好。

+1

非常感谢。很好的回答:) – 2013-02-25 01:56:24

+1

谢谢!我最近研究了这个问题。 – 2013-02-25 01:59:48

+0

我有20张图片。他们每个人都是100x100px。我想这意味着我必须创建60多个图像,其他3个密度各一个。你能推荐一个程序来简化这项任务吗?我使用paint.net,但它不做批处理。 – 2013-02-25 02:00:36

3

这是否意味着我必须使用一些图像编辑软件为每个图像的每个分辨率创建一个图像?或者(希望)有没有办法导入图像,并自动为我完成?

如果你已经有图像的高分辨率源(或矢量图形格式),可以使用Android Asset Studio来从自己的源图像图标/图像进行密度(减xxhdpi)。您还可以创建默认Android剪贴画中的图标/图像,该图像可以以各种版本的Android为主题。这将为您节省一些图像编辑工具调整大小和保存的麻烦。

+0

不错,我会结账android资产工具吧! – 2013-02-25 02:04:21

+0

该工具将在其创建的图像(即image.9.png)中附加“.9”。当调用drawable时,只需使用“image”(同时跳过“.9”和扩展名)。试图弄清楚这一点花了一些时间。 – TekiusFanatikus 2015-01-25 13:04:53