1

背景が透明な赤いボールの画像があります。背景に影響を与えずに、プログラムでボールの色を他の多くの色に変更したい。つまり、背景は透明のままにする。これはAndroidでどのように達成できますか?

4

3 に答える 3

2

Bitmapクラスを使用して、メソッドを使用するなど、この方法で画像を変更できますsetPixel()。色のアルファが透明に設定されていることを確認する必要があります。

RGB チャンネルとアルファ チャンネルで色を定義する方法については、こちらColorのドキュメントを参照してください(各ピクセルのアルファ値を保持し、RGB 値のみを変更したい場合)。こちらのドキュメントも参照してくださいBitmap

于 2012-10-31T10:35:15.910 に答える
1

試す:

//Bitmap bmp
//int color 
int[] pixels = new int[bmp.getWidth() * bmp.getHeight()];
bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0,
            bmp.getWidth(), bmp.getHeight());
for (int i = 0; i < pixels.length; i++) {
pixels[i] &= color;
}
Bitmap newBmp = Bitmap.createBitmap(bmp.getWidth(),
bmp.getHeight(), Config.ARGB_8888);
newBmp.setPixels(pixels, 0, newBmp.getWidth(), 0, 0, newBmp.getWidth(), newBmp.getHeight());
于 2012-10-31T10:39:35.343 に答える
-1

Frame Animationを使用して実現することもできます。同じボールの画像をボールの色を変えて使い分けたり、フレームアニメーションを使って画像をフレームとして動かしたりすると、ボールの色が変わって見えます。

于 2012-10-31T10:36:12.010 に答える