2012-12-17 128 views
1

我必须要显示不同帧的图像,如下所示:Android的画布绘制多帧图像

Multiframe gif

正如你所看到的图像有三个帧,充分心脏,一半心脏和空的空间。

现在我只需要三个中的一个。我只是想知道是否有一种方法可以在android sdk中使用单个gif。 例如在若干语言存在的方法等:

canvas.drawImage(xpos,ypos,xwidth,xheight,gifx,gify,gifwidth,gifheight) 

其中gifx,gify,gifwidth,gifheight是所选择的帧的坐标和大小。

回答

1

好吧我回答自己,我刚刚找到了解决方案。

为了绘制一个多帧图像以下的方法,可以使用:

public void drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint) 

其中:

  • 位图bitamp与BitmapFactory.decodeResource得到的位图的资源(或通过您的首选方法)。
  • 的Rect SRC是要显示的帧(它可以为null)
  • 矩形DST RHE该位图将被缩小/翻译成装配到矩形(也可以是NULL)
  • 油漆油漆用于绘制位图(它可以为null)

(我没有测试)的另一种方法可以使用BitmapRegionDecoder第一

public Bitmap decodeRegion (Rect rect, BitmapFactory.Options options) 

在哪里矩形是所选择的区域:该对象的所有的新实例,必须使用BitmapRegionDecoder.newInstance(...) 和要显示可以用的方法来获得位图然后所选择的区域中创建被显示。有关BitmapRegionDecoder的更多信息: http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html