スプラッシュ画面などで、グラデーションのかかった画像を一枚表示することがあります。
その際、グラデーションにマッハバンドと言われる縞が出ることがあり、グラデーションがきれいに見えない原因になります。
解決方法は簡単で、以下2ステップで解消できます。
1.スプラッシュのActivityでWindowのPixelFormatを指定する
@Override public void onAttachedToWindow() { super.onAttachedToWindow(); Window window = getWindow(); window.setFormat(PixelFormat.RGBA_8888); }
2.画像を全解像度用に用意する
ldpi,mdpi,hdpi,xhdpiそれぞれに適切に拡大・縮小した画像を用意しておきます。これをやらないと、内部的に自動で拡大縮小されるので、その際にマッハバンドが発生します。
タグ: tips