1

Android 5.0 で小さくて幅の広いビューにエレベーションを追加すると、影が非常に奇妙に見えます。ただし、Android 5.1 では問題ないようです。例として、次の比較画像をご覧ください (クリックしてフル解像度で表示してください)。

5.0 と 5.1 の比較

5.1 では影の形状は均一ですが、5.0 では画面の端に向かって薄くなります。ビューが薄い (つまり小さい) ほど、効果がより明確になります。

これがいずれかのバージョンのバグかどうかはわかりませんが、現在 5.1 で見えるように、両方のバージョンでシャドウが見えるようにする必要があります。

4

1 に答える 1

1

これはハックな部分的な回避策です。影の形状は、ビューの高さ、より正確にはアウトラインの高さによって異なります。そこで、カスタム アウトラインを次のように設定します。

view.setOutlineProvider(new ViewOutlineProvider() {
    @Override
    public void getOutline(final View view, final Outline outline) {
        outline.setRect(0, -128, view.getWidth(), view.getHeight());
    }
});

-128十分な数を選択する代わりに(または、リソースからディメンション値を読み込むことをお勧めします)。外観は次のとおりです。

ここに画像の説明を入力

残念ながら、このハックにより、ビューの上に奇妙なアーティファクトがレンダリングされます。ただし、その上に別のビュー (ツールバーなど) がある場合、それらは表示されません。ビューを別のレイアウトに配置し、その境界をいじることで、アーティファクトを切り取ることができるかもしれません。

于 2015-09-15T19:22:08.880 に答える