2

最初に、Android API 16 の簡単なコード例をいくつか示します。

Bitmap bmp = Bitmap.createBitmap(2, 2, Bitmap.Config.ARGB_8888);
bmp.setHasAlpha(true);
int c0 = Color.argb(254, 128, 128, 128);
Log.i("Color before", "c0 = " + c0 
        + " (" + Color.alpha(c0) + ", " 
        + Color.red(c0) + ", " 
        + Color.green(c0) + ", " 
        + Color.blue(c0) + ") "); //c0 = -25132928 (254, 128, 128, 128) 
bmp.setPixel(0, 0, c0);
int c1 = bmp.getPixel(0, 0);
Log.i("Color after", "c1 = " + c1 
        + " (" + Color.alpha(c1) + ", " 
        + Color.red(c1) + ", " 
        + Color.green(c1) + ", " 
        + Color.blue(c1) + ") "); //c1 = -25198721 (254, 127, 127, 127) 

アルファ = 254 およびサブピクセル値のいずれか = 128 の場合、それらは 127 として保存されます。私の知る限り、これは機能しない唯一の値のセットですが、既存の順列をすべてチェックしたわけではありません。

同様の記事をいくつか読んだことがありますが、ビットマップの変換、ビットマップのコピー、またはメソッド setHasAlpha(true) の呼び出しの欠如に関する問題について説明していました。

これは大きな問題を伴う単純な例であり、それが Android のバグなのか、それともここで何か問題があったのかはわかりません。ですから、あなたの助けと解決策(存在する場合)に感謝します。

前もって感謝します。

4

0 に答える 0