放大Android图片的最佳方式

时间:2014-05-04 17:04:44

标签: android animation bitmap image-enlarge

假设我们的显示器尺寸为100x100,图像为100x50,我想放大该图像,使其与屏幕具有相同的高度。所以图像将是200x100。之后我想让图像移动的动画向左和向右。我找到了两种实现任务的方法:

  1. 使用Bitmap.createScaledBitmap()创建新图像。但是 以这种方式创建的图像将占用两倍的RAM。
  2. 在每个matrix.setScale()中使用onDraw()。但这很有效 慢。还有其他更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

第二种方法很慢,因为你在每一帧上计算你的“矩阵”!由于你的矩阵总是一样的并且它没有改变,你可以预先计算你的矩阵并将其保存为你的类中的“字段”,然后只需使用此函数在屏幕上绘制它:

canvas.drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)

它应该足够快。另一种选择是使用:

canvas.drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)

再次尝试尽可能预先计算内容。在这种情况下,预计算src和dst矩形。