1

水平方向に反転させたいバックグラウンド ドローアブルを使用しています (ビューの「裏側」を表します)。元のビットマップのコピーを作成せずにこれを行いたいのですが (メモリの問題)、後で必要になるため (ビューが裏返されたとき)、元のビットマップを破棄することはできません。

BitmapDrawableメソッドでいくつかの行列変換を拡張して実行することでこれを実行しようとしましdraw(Canvas)たが、ハードウェアが加速すると機能しません。

私の の一部として私が今していることは次FragmentonCreateView()とおりです。

BitmapDrawable backgroundDrawable = foo;

Matrix matrix = new Matrix();
matrix.preScale(-1, 1);

Bitmap flipped = Bitmap.createBitmap(
backgroundDrawable.getBitmap(), 0, 0, backgroundDrawable
    .getBitmap().getWidth(), backgroundDrawable
    .getBitmap().getHeight(), matrix, false);
v.findViewById(R.id.bar).setBackgroundDrawable(
    new BitmapDrawable(getResources(), flipped));

メモリに重複があることを除いて、完全に機能Bitmapします。これを回避する方法はありますか?

4

0 に答える 0