スプライトをロードしてアニメーション化するJavaアプレットがあります。関数は次のようになります。
public void addSprite(BufferedImage image, long duration,
int rows, int cols, int width, int height) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
long durationFrame = (long) (duration / (cols * rows));
addFrame(image.getSubimage(j * width, i * height,
width, height), durationFrame);
}
}
}
addFrame メソッドは、画像が表示される期間とともに、サブ画像を ArrayList に保存します。
すべて正常に動作しますが、明らかにBufferedImageは Android パッケージの一部ではないため、代わりに Bitmap を使用してメソッドを変更する必要があります。
しかし、getSubimageメソッドを同様のものと交換するのに問題があります。Bitmap クラスのgetPixels(...)メソッドでこれを行う必要があると思いますが、同じ結果を得るために正しく使用する方法が正確にはわかりません。パラメータがかなり異なるため、これを交換する方法のヒントを誰かに教えてもらえますか:
image.getSubimage(x, y, width, height)
これで( getPixels() メソッドが正しい選択であると仮定して):
image.getPixels(pixels, offset, stride, x, y, width, height)
すでにサポートに感謝