0

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

  1. 使用Bitmap.createScaledBitmap(). 但是以这种方式创建的图像将占用两倍以上的 RAM。
  2. matrix.setScale()每个onDraw(). 但这工作非常缓慢。还有其他更好的解决方案吗?
4

1 回答 1

1

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

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

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

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

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

于 2014-05-04T17:13:25.953 回答