Android APPインターフェースの白黒処理

Android ページがグレー表示される

解決策 1. Android のページ描画プロセスは一般的にmeasurelayout、 、に分かれておりdraw、ページのグレーイングdrawはメソッド内で実装されます。drawメソッドのパラメータにはcanvasインターフェースのキャンバスである 、 、paintインターフェースを描画するためのブラシが含まれます。プロパティを変更することでインターフェイスの背景色を変更したり、カラーフィルターを設定することでブラシの色相、彩度、明るさを変更したりできます。グレー効果の彩度を 0 に設定し、ブラシの設定コードを次のように設定します。canvaspaintpaint

Paint  paint = new  Paint();
ColorMatrix cm = new  ColorMatrix();
cm.setStaturation(0);
paint.setColorFilter(new ColorMatrixColorFilter(cm));

解決策 2.パフォーマンスを考慮する HardwareLayer (GPU 内のバッファ) を使用して、描画されたグラフィックスをキャッシュします。setter メソッドは、対応する独自のレイヤーの作成をsetLayerType()強制し、そのレイヤー上に自分自身を描画します。View

解決策 3.Activity上層Viewにグレー化を設定して、全体的なグレー化効果を実現します。インターフェースのルートを取得しますView

//java
View view  = activity. getWindow(). getDecorView();
 Paint paint = new  Paint();
ColorMatrix cm = new  ColorMatrix();
cm.setStaturation(0);
paint.setColorFilter(new ColorMatrixColorFilter(cm));
view. setLayerType(View.LAYER_TYPE_HARDWARE, paint);
//kotlin
val view: View = window.decorView
val paint = Paint()
val cm = ColorMatrix()
cm.setSaturation(0f)
paint.colorFilter = ColorMatrixColorFilter(cm)
view.setLayerType(View.LAYER_TYPE_HARDWARE, paint)

おすすめ

転載: blog.csdn.net/chennai1101/article/details/130710148