2016-05-30 18 views
0

私のアプリには次のコードがあります。ここでは、基本的にビットマップをグレー表示しています。ビットマップのぼかしは、画像をぼかすことによって得られます。Android:ビットマップ設定ARGB_8888が一部のデバイスで動作しない

final Bitmap resultBitmap = Bitmap.createBitmap(blurred.getWidth(), blurred.getHeight(), Bitmap.Config.ARGB_8888); 

    final Canvas c = new Canvas(resultBitmap); 

    c.drawBitmap(blurred, 0, 0, null); 

    final Paint p = new Paint(); 
    p.setAlpha(127); 

    c.drawBitmap(Bitmap.createBitmap(linearLayout.getWidth(), linearLayout.getHeight(), Bitmap.Config.RGB_565), 0, 0, p); 
    BitmapDrawable background = new BitmapDrawable(getResources(), resultBitmap); 
    linearLayout.setBackground(background); 

このコードは、すべてのデバイスで期待どおり動作しますが、Micromax E313では希望の結果が得られません。いくつかのデバッグ後、私は問題が今、問題は解決しRGB_565を使用してライン

final Bitmap resultBitmap = Bitmap.createBitmap(blurred.getWidth(), blurred.getHeight(), Bitmap.Config.ARGB_8888); 

でARGB_8888の使用であることがわかりますが、それはARGB_8888に見える結果として得られたビットマップがほど良く見えません。

私の質問は、そのようなデバイスでARGB_8888を動作させる方法です。そうでない場合はARGB_8888がサポートされているかどうかを確認する方法がありますので、そのようなデバイスでRGB_565にフォールバックすることができます。前もって感謝します !!

答えて

0

ARGB_8888使用4バイト(32ビット)ので、色のものは動作しません小さなアンドロイドバージョンレベルを有するいくつかのデバイスとすることができるように。

resultBitmapがNULLかどうか、RGB_565を使用するかどうかを確認できます。

関連する問題