各ピクセルを4バイト(4byte/pixel)に格納します。getPixelピクセルは、Bitmap#getPixelメソッドで取得できます。j);ピクセルは色情報の最小単位です。ARGB_8888を指定しているので、赤・青・緑・Alpha情報が含まれています。Color取得ピクセルは色情報の最小単位です。Colorメソッドでピクセルから赤・青・緑各色の値を取得できます。Color.blue(pixel);Colorクラスは、int型で色を扱うことができます。色は、アルファ、赤、緑、青の4バイトで構成されます。透明度はアルファコンポーネントに格納され、カラーコンポーネントには格納されません。単純平均法はグレースケール変換後の値YをR,G,Bの平均値とする方法です。setPixelsetPixelメソッドでピクセルに色を設定することができます。gray_rgb);平均値をrgbの値に変換して設定します。Alphaは変更しません。ビルド上記のコードビルドして動作を確認します。グレースケール画像にグレースケールが設定されました。画像処理は重い処理なので処理時間も重要です。計測しておきましょう。単純平均法を使った処理時間は5144msです。Bitmapを直接処理しているので遅いです。次はグレースケールの加重平均法でImageViewの画像を変更します。R,G,Bを使った式で計算する方法です。式の係数は,日本やアメリカで使われているテレビ放送の規格で使われている係数で、各色に対する人間の視感的特性から実験的に求められた値です。Androidに加重平均法のライブラリはないので、直接Bitmapを操作します。計算式以外は、単純平均法と同じです。計算式以外の説明は、単純平均法を参考にしてください。上記の式をそのまま当てはめます。doubleを使います。計算後は、int型にキャストし、rgbの値に変換します。あとは、ピクセルに値を設定すればOKです。ビルド上記のコードビルドして動作を確認します。グレースケール画像にグレースケールが設定されました。画像処理は重い処理なので処理時間も重要です。計測しておきましょう。単純平均法を使った処理時間は4944msです。結論Androidでは、様々な画像変換方法が利用できます。上記の方法の他にも、OpenCV等のライブラリを使っても変換できます。作成するアプリの目的に合った方法で実装すると良いでしょう。grayscaleに関しては、ColorFilterを使うのが一番だと思います。