这是我正在尝试做的事情:我正在尝试加载一系列位图来显示动画。这意味着我需要有一个下降fps(24 fps)。我需要加载不超过10秒的动画或大约300个位图。因为它是一个动态壁纸,我只能手动绘制每一帧。
这是我到目前为止所尝试的内容:
那么我可以使用其他策略吗?
这就是我的想法:如果我使用openGL,我可以使用更小的位图(因为它可以提供更好的缩放)。也许那时我可以拥有更大的缓存 - 比如3秒。使用更大的缓存,缓慢的位图加载不会是一个问题,对吧?
还有其他策略吗?
哦,这是我当前的位图加载功能:
void loadNthBitmap(int i, int n) {
try {
buf = new
BufferedInputStream(assets.
open(folder+"/"
+imageList[n])
);
tmpBitmap = BitmapFactory.
decodeStream(buf);
rbitmap[i] = Bitmap.createBitmap
(tmpBitmap,
0,0,imageWidth,imageHeight,
transMatrix,false);
}
catch(IOException e) {}
}
其中imageList
是预定义的资产列表,transMatrix
是旋转和缩放矩阵。
答案 0 :(得分:1)
你要做的事情(即全帧动画)并不容易。几乎所有Android动画(从SDK中的Lunar Lander示例到愤怒的小鸟)都包含在相对静态的背景上移动小精灵。
解决问题的“明显”解决方案是将动画转换为mpeg,然后将其解码为视频动态壁纸,复制此人在此处采用的方法:http://forum.xda-developers.com/showthread.php?t=804720(替代链接{{3 }})