Android-向项目中添加图像

Android-向项目中添加图像,android,image,import,adt,image-size,Android,Image,Import,Adt,Image Size,我是Android的新手,我正在使用eclipseadt创建一个简单的应用程序。此应用程序有一个按钮,可根据用户单击更改其背景图像 我注意到我的项目中有4个图像文件夹:可绘制hdpi、可绘制ldpi、可绘制mdpi和可绘制xhdpi 我还注意到,目前在那里的图像(启动器图标)都是不同大小的 这是否意味着我必须使用一些图像编辑软件为每个图像的每个分辨率创建一个图像?或者(希望如此)是否有一种方法可以导入图像并自动完成 谢谢 图像和其他可视文件存储在一个或多个可绘制目录中。如果只有一个目录,Andr

我是
Android
的新手,我正在使用
eclipseadt
创建一个简单的应用程序。此应用程序有一个按钮,可根据用户单击更改其背景图像

我注意到我的项目中有4个图像文件夹:
可绘制hdpi、可绘制ldpi、可绘制mdpi和可绘制xhdpi

我还注意到,目前在那里的图像(启动器图标)都是不同大小的

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


谢谢

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

  • 可绘制ldpi-低密度图像
  • 可绘制mdpi-中等密度图像
  • 可绘制hdpi-高密度图像
  • 可绘制xhdpi-超高密度图像(即视网膜状显示器)
  • 可拉伸xxhdpi-超高密度图像(如Nexus 10、三星Galaxy S4、HTC One和索尼Xperia Z等设备)
  • 可绘制xxxhdpi-三倍超高密度图像()
(旁注:XML文件也可以作为绘图文件写入和存储。这些类型的文件可以根据视图状态或其他视觉设置(如渐变、边框等)控制何时使用多个图像。)

那么,你应该怎么做

获得最佳结果(来自:

要生成这些图像,您应该从矢量格式的原始资源开始,并使用以下尺寸比例为每个密度生成图像:

  • xxxhdpi:4.0
  • xxhdpi:3.0
  • xhdpi:2.0
  • hdpi:1.5
  • tvdpi:1.33(仅限电视)
  • mdpi:1.0(基线)
  • ldpi:0.75
这意味着,如果为xhdpi设备生成200x200映像,则应为hdpi生成150x150的相同资源,为tvdpi生成133x133的相同资源,为mdpi生成100x100的相同资源,最后为ldpi设备生成75x75的映像

如果您只想使用一张图像,让Android为您缩放:

据《每日邮报》报道,超过75%的安卓设备现在具有hdpi或更高的分辨率。例如,如果你在hdpi上创建一个图像,它在大约三分之一的设备上看起来会很完美,在一些设备上放大,在大约25%的设备上缩小。总的来说,我认为缩小规模比扩大规模更好

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


如果您已经有了高分辨率的图像源(或矢量图形格式),则可以使用从自己的源图像中为每个密度(减去xxhdpi)生成图标/图像。您还可以从默认的Android clipart创建图标/图像,这些图标/图像可以为各种版本的Android设置主题。这将为您节省一些使用图像编辑工具调整大小和保存的麻烦。

谢谢!我最近研究了这个问题。我有20张图片。每个都是100x100px。我想这意味着我必须再创建60张图像,一张对应其他3种密度。你能推荐一个程序来简化这项任务吗?我使用paint.net,但它不进行批处理。我不知道什么是最好的,但这里有一些选项。我使用了ImageMagick中的“mogrify”命令行工具:。这里有一个超级用户论坛的帖子可能也会有所帮助:回答得好Ben,你应该把tvdpi添加到你的列表中。这个工具会在它创建的图像中添加“.9”(即image.9.png)。调用drawable时,只需使用“image”(跳过“.9”和扩展名)。花了一点时间想弄明白。