Android Java:游戏中的高效重绘位图?
我在游戏循环中获得分配,因为我对16帧位图动画的每一帧使用Bitmap.createBitmap,如下所示:Android Java:游戏中的高效重绘位图?,java,android,memory-management,Java,Android,Memory Management,我在游戏循环中获得分配,因为我对16帧位图动画的每一帧使用Bitmap.createBitmap,如下所示: Bitmap bitmap = new Bitmap; public init(){ for(int j=0;j<16;j++) { Bitmap pick2 = BitmapFactory.decodeResource(getResources(), getResources().getIdentifier("walk"+j, "drawable", p
Bitmap bitmap = new Bitmap;
public init(){
for(int j=0;j<16;j++)
{
Bitmap pick2 = BitmapFactory.decodeResource(getResources(), getResources().getIdentifier("walk"+j, "drawable", packageName), shipOptions);
walkArray.add(pick2);
}
}
onDraw(Canvas canvas)
{
super.onDraw(canvas);
canvas.drawBitmap(bitmap);
}
final Runnable walkData = new Runnable()
{
public void run(){
try{
if(walkAnim==true)
{
bitmap = Bitmap.createBitmap(walkArray.get(walkNum), 0, 0, walkArray.get(walkNum).getWidth(), walkArray.get(walkNum).getHeight(), matrix, true);
walkNum++;
if(walkNum>15)
{
walkNum=0;
}
invalidate();
}
if(walkAnim==false)
{
bitmap = Bitmap.createBitmap(pick, 0, 0, pick.getWidth(),
pick.getHeight(), matrix, true);
}
handler.postDelayed(this, 50);
} catch (Exception e) {
e.printStackTrace();
}
}
};
我不太担心runnable调用的速度,我更担心的是分配的大小会达到300kb。有什么方法可以优化这段代码吗?我希望尽可能避免使用ImageView和canvsas。我仍在努力理解位图缓存和高效的位图绘制。如果有人能给我指出正确的方向,这将对我有很大帮助:我发现这段视频非常有用,如果有人读过这段视频: