Java 我应该在Android应用程序中使用哪种图像格式?

Java 我应该在Android应用程序中使用哪种图像格式?,java,android,graphics,Java,Android,Graphics,我正在为Android编写一个游戏,我想知道游戏中的图形应该使用什么样的图像 我告诉客户以尽可能高的(合理的)分辨率创建艺术品,我会缩小它的比例,但最近有人告诉我,SVG比普通的PNG更好,例如,因为Android设备使用了很多分辨率,图像必须进行缩放。大多数图形将是固定的背景或对象,但会有一些动画。为此,我将使用AnimationDrawable 对于图形文件格式是否有一些通用的指导原则(我查看了网站,但没有找到任何东西),或者只是使用我目前拥有的任何东西 对于图形文件格式是否有一些通用指南

我正在为Android编写一个游戏,我想知道游戏中的图形应该使用什么样的图像

我告诉客户以尽可能高的(合理的)分辨率创建艺术品,我会缩小它的比例,但最近有人告诉我,SVG比普通的PNG更好,例如,因为Android设备使用了很多分辨率,图像必须进行缩放。大多数图形将是固定的背景或对象,但会有一些动画。为此,我将使用
AnimationDrawable

对于图形文件格式是否有一些通用的指导原则(我查看了网站,但没有找到任何东西),或者只是使用我目前拥有的任何东西

对于图形文件格式是否有一些通用指南

对。上面说

Android支持三种格式的位图文件:
.png
(首选)、
.jpg
(可接受)、
.gif
(不推荐)

本机不支持SVG绘图,但有些库支持SVG

对于每个密度,您通常会将SVG图像转换为像素图像。Android还为图标定义了一些标准尺寸,如

将图像源用作SVG不是一个坏主意。SVG和其他基于矢量的图形通常比像素图形更适合不同的大小。特别是如果您需要放大图像(例如,播放商店中使用的)

另外,请小心使用
动画绘制功能
,它不适用于全屏动画。只是小的动画图标之类的

例如,我最近听说SVG比纯PNG更好

Android本机不支持SVG。有支持SVG的第三方库,例如

因为Android设备使用了很多分辨率,图像必须缩放

如果这确实是你的平面设计师告诉你的,你需要雇佣一个不同的平面设计师。快点

决议通常毫无意义。重要的是屏幕大小,更重要的是图形,屏幕密度。Android支持不同密度的图像的多个版本,还可以将图像从一个密度重新采样到另一个密度,因此您可以“拨入”希望直接支持的密度。这里是关于屏幕密度的,Android文档中也有大量关于这方面的资料


现在,您的图形设计师可能会在“内部”使用SVG并生成密度缩放的PNG文件供您使用——这是完全合理的。

如果可以在SVG中完成这些操作,那么就这样做,因为它们可以毫无妥协地放大或缩小。您应该为png图像使用SpriteSheet,这有助于您管理内存,因为智能手机的内存总是有限的。@MrWaqasAhmed:Android SDK中没有
SpriteSheet
。@看看通用软件,我不会使用完整的sceen动画,只使用一些小的动画对象。@AdamArold小动画很好。我见过一些问题,比如经常与动画游戏有关的问题,所以我认为这是值得注意的。只有一个对象会被设置动画。事实上,这是一个相当小的图像,但感谢您的通知。因此,我必须为典型密度(hdpi、ldbpi等)创建不同的图像,并且我不应该将所有图像都转储到Drwable land文件夹中,例如?@AdamArold:嗯,
drawable land/
通常是一个奇怪的选择(你有不同的图像,名称相同,是纵向还是横向?)。而且,正如我所指出的,“必须”是一个强有力的短语。欢迎你让Android对你的图像进行重采样,只需将一个图像放入密度桶(例如,
可绘制的xhdpi
)。如果您觉得这些结果令人满意,那么您就可以了。如果您不喜欢重采样图像在某些密度下的外观,请让您的图形设计师为相同图像准备其他版本,以针对这些较低密度进行优化。我们可以聊一会儿吗?我刚想到一件事。