2016-03-23 22 views
0

私は白黒のピクセルだけを意味するモノクロの画像を持っています。私はすべてのdpiフォルダをカバーするためにイメージのいくつかのバージョンを作っています。 floodfillアルゴリズムを適用したいので、私はモノクロ画像を使用しています。 問題は、一部のデバイスでは、アンドロイドがイメージのサイズ変更されたバージョンを使用し、スケーリング中にグレーのピクセルがいくつかあることです。これを処理するために、ピクセルを修正してグレーを白または黒に変換しようとしましたが、これにはかなりの時間がかかります。 イメージビューのサイズを変更している間にアンドロイドにモノクロ画像を生成させたり、モノクロ画像を再生するためにクイックフィルタを適用することはできますか? 私はそれを試していませんが、nodpiフォルダに異なるバージョンのイメージを生成して、縮尺なしで使用する必要があります。Androidは白黒の画像ビューを作成して灰色のピクセルを作成します

+0

代替方法:ビットマップを操作して結果をイメージビューに設定できますか? – Christopher

+0

イメージビューではなく描画可能イメージで作業することを意味しますか?どうやってやるの?私が必要とするのは、イメージビューから取得しているビットマップです。イメージファイルから直接取得できる場合、私は救われたと思います! – George

答えて

0

Drawableをビットマップとして読み込むことができます。

final BitmapFactory.Options options = new BitmapFactory.Options(); 
// Load the bitmap as mutable object 
options.inMutable = true; 
final Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_image, options); 

次に、あなたのアルゴリズムでそれを操作することができ、最終的に、あなたのImageViewの

imageView.setImageBitmap(bitmap); 

あなたはAndroidのスケーリングによって引き起こされる任意のグレーのピクセルを取得するべきではありません。この方法に結果を設定します。

  1. See here
  2. And here:より多くのオプションについては

+0

4行のコードの後、私のアルゴリズムを実行する前に、イメージを画面のサイズに拡大してからimageViewに割り当てる必要があります。私はそれをやっていない場合、私は同じ結果を得るべきではない最後のステップで直接ビットマップをimageViewに割り当てるか?アルゴリズムを適用すると、画面の大きさと同じ大きさのビットマップが必要になるため、描画可能なフォルダ内のイメージのサイズを変更する必要があります。 – George

関連する問題