我有一个不同框架的图像要显示,如下所示:
如您所见,该图像具有三个帧,全心、半心和空白空间。
现在我只需要三帧中的一帧。我只是想知道是否有一种方法可以在 android sdk 中使用单个 gif。例如,在几种语言中,有一种方法如下:
canvas.drawImage(xpos,ypos,xwidth,xheight,gifx,gify,gifwidth,gifheight)
其中 gifx,gify,gifwidth,gifheight 是所选帧的坐标和大小。
我有一个不同框架的图像要显示,如下所示:
如您所见,该图像具有三个帧,全心、半心和空白空间。
现在我只需要三帧中的一帧。我只是想知道是否有一种方法可以在 android sdk 中使用单个 gif。例如,在几种语言中,有一种方法如下:
canvas.drawImage(xpos,ypos,xwidth,xheight,gifx,gify,gifwidth,gifheight)
其中 gifx,gify,gifwidth,gifheight 是所选帧的坐标和大小。
好的,我回答自己,我刚刚找到了解决方案。
为了绘制多帧图像,可以使用以下方法:
public void drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint)
在哪里:
另一种方法(我没有测试过)可能是使用BitmapRegionDecoder首先必须使用 BitmapRegionDecoder.newInstance(...) 创建对象的新实例,然后可以使用方法:
public Bitmap decodeRegion (Rect rect, BitmapFactory.Options options)
其中 rect 是要显示的选定区域。有关 BitmapRegionDecoder 的更多信息:http: //developer.android.com/reference/android/graphics/BitmapRegionDecoder.html