0

アニメーションを再生するには、最大 150 個の JPEG 画像を A​​rrayList にロードする必要があります。

そのようにロードすると

ByteArrayOutputStream stream = new ByteArrayOutputStream();
BitmapFactory.decodeResource(getResources(), R.drawable.y1).compress(Bitmap.CompressFormat.JPEG, 80, stream);
byeArr.add( stream.toByteArray() );

150 枚の画像で最大 10 秒かかる場合があるため、高速化する方法はありますか? この画像をリソースまたはアセットにすでにバイト[]などとして保存できますか?

ありがとう

4

1 に答える 1

2

以下のメソッドを使用して、リソースから生データを取得できます。デコードしてから再度圧縮する必要はありません。

byte[] getBytesFromResource(final int res) {
    byte[] buffer = null;
    InputStream input = null;

    try {
        input = getResources().openRawResource(res);
        buffer = new byte[input.available()];
        if (input.read(buffer, 0, buffer.length) != buffer.length) {
            buffer = null;
        }
    } catch (IOException e) {
        buffer = null;
    } finally {
        if (input != null) {
            try {
                input.close();
            } catch (IOException e) {}
        }
    }

    return buffer;
}
于 2012-09-16T11:38:37.660 に答える