1

次のように、表示するフレームが異なる画像があります。

マルチフレーム gif

ご覧のとおり、この画像には 3 つのフレーム (完全なハート、半分のハート、空のスペース) があります。

これで、3 つのフレームのうち 1 つのフレームだけが必要になります。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は表示されるフレームです (null の場合もあります)
  • Rect dstビットマップが収まるようにスケーリング/変換される四角形 (null の場合もあります)
  • ビットマップの描画に使用されるPaint ペイント (null の場合もある)

別の方法 (私はテストしていません) は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 に答える