Bitmap.create(25, 25, Config.ARGB_8888) を使用してビットマップを作成します。
アルファ値が 0xA9 以下のピクセルを設定すると、渡されたものがピクセルに設定されません。別のスタック オーバーフローの質問を読み、setHasAlpha(true) を指定しました。これはテストで行いましたが、それでも問題はありませんでした。問題を解決しません。
私の問題を示す私のAndroidテストケースは次のとおりです。
public void testSettingBitmaps() {
Bitmap bitmap = Bitmap.createBitmap(25, 25, Config.ARGB_8888);
bitmap.setHasAlpha(true);
int color = 0x00fefefe;
int x= 0;
int y = 0;
for(int alpha = 0xFF000000; alpha != 0x00000000; alpha = alpha - 0x01000000) {
int colorPlusAlpha = color + alpha;
bitmap.setPixel(x, y, colorPlusAlpha);
//
// This test succeeds if the bitmap let us set the pixel.
//
assertEquals(String.format("Current alpha value: %x, Expected pixel value: %x, Actual pixel value: %x", alpha, colorPlusAlpha, bitmap.getPixel(x, y)),
colorPlusAlpha, bitmap.getPixel(x, y));
}
}
このコードは次の出力で失敗します:junit.framework.AssertionFailedError: 現在のアルファ値: a9000000、予想されるピクセル値: a9fefefe、実際のピクセル値: a9fdfdfd