1

我有一个不同框架的图像要显示,如下所示:

多帧 gif

如您所见,该图像具有三个帧,全心、半心和空白空间。

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

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

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

4

1 回答 1

1

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

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

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

在哪里:

  • Bitmap bitamp是通过 BitmapFactory.decodeResource (或通过您的首选方法)获得的 Bitmap 资源。
  • rect src是要显示的框架(可以为空)
  • Rect dst矩形,位图将被缩放/翻译以适应(它可以为空)
  • 用于绘制位图的油漆 (可以为空)

另一种方法(我没有测试过)可能是使用BitmapRegionDecoder首先必须使用 BitmapRegionDecoder.newInstance(...) 创建对象的新实例,然后可以使用方法:

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

其中 rect 是要显示的选定区域。有关 BitmapRegionDecoder 的更多信息:http: //developer.android.com/reference/android/graphics/BitmapRegionDecoder.html

于 2012-12-18T21:49:56.267 回答