我有一个 ListView,ListView 的每个项目视图在创建和解码它们时都在绘制几个位图。但是在滚动时,即使我在三星 S3 上测试它也不是很流畅。
我的解决方案是让它在滚动时变成静态图像。但很难实施。
有没有一种简单的方法或更好的方法可以让它表现得更好?
主要绘图代码:
Bitmap bitmap = decoder.getFrame(index);
if (bitmap != null) {
if (!bitmap.isRecycled()) {
canvas.drawBitmap(bitmap, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), new Rect(0, 0, fixedSize, fixedSize), paint);
invalidate();
}
}
public Bitmap getFrame(int n) {
if (frameCount <= 0)
return null;
if (n >= frames.size())
return null;
n = n % frameCount;
return ((GifFrame) frames.elementAt(n)).image;
}