从个人的经验谈你应该Bitmaps而非Drawables去。这会产生更好的结果。
位图将最适合您的选项,因为您需要的所有东西(如我所知道的)是要显示在屏幕上的图片。
可拉伸具有较宽的范围(文件从Android开发网站。):
可拉伸性是一般的抽象“的东西,可以得出。” 大多数情况下,您将处理Drawable作为资源的类型 检索绘制的东西到屏幕上;可绘制类 提供了一种通用API,用于处理可能采用多种形式的基础可视资源 。与视图不同,Drawable不具有接收事件或与其他用户交互的任何设施。
在游戏开始之前将所有Bitmaps绝对加载;这是一个干净的方法。如果你不这样做,由于GC,你的游戏可能会滞后。
您可以创建一个包含所有静态位图字段的类。
public static Bitmap foo;
然后在您的活动类,你可以加载这些位图(我通常把我的位图中的资产文件夹):
注:这可能是最好创建一个名为LoadScreen或闪屏,将照顾类所有的初始化。如果你这样做,你必须将一个对你的活动类的引用传递给这个类。
Assets.foo = readAssetsBitmap("foo.png");
public Bitmap readBitmapFromMemory(String filename) {
Bitmap defautBitmap = null;
File filePath = getFileStreamPath(filename);
FileInputStream fi;
try {
fi = new FileInputStream(filePath);
defautBitmap = BitmapFactory.decodeStream(fi);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
return defautBitmap;
}
当用户决定退出游戏,你应该卸载所有的位图,如下所示:
disposeBitmap(Assets.foo);
public void disposeBitmap(Bitmap bitmap) {
bitmap.recycle();
bitmap = null;
}
我希望这有助于。