web-dev-qa-db-fra.com

Comment changer la direction de l'ombre Android élévation?

J'ai FrameLayout avec Android: elevation = "4dp". Ombre de cette élévation dirigée vers le bas. Je veux changer de direction d'ombre à la hausse.

<FrameLayout
    Android:id="@+id/container"
    Android:layout_width="match_parent"
    Android:layout_height="100dp"
    Android:elevation="10dp"
    Android:layout_marginBottom="100dp"
    Android:background="@color/ColorPrimary"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentStart="true">
</FrameLayout>
18
Valery Miller

Je considère que cette méthode est la meilleure solution: Barre de navigation inférieure avec ombre portée Android Merci, Alexander Bilchuk.

Solution:

Vous pouvez dessiner votre propre ombre juste au-dessus de la vue en utilisant la vue simple et son arrière-plan:

<View
    Android:layout_width="match_parent"
    Android:layout_height="4dp"
    Android:layout_above="@id/bottom_bar"
    Android:background="@drawable/shadow"/>

drawable/shadow.xml:

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <gradient
        Android:startColor="#1F000000"
        Android:endColor="@Android:color/transparent"
        Android:angle="90" />
</shape>

En outre, il n'y a pas de problèmes de compatibilité si vous utilisez cette approche.

8
Valery Miller

En ce qui me concerne, vous ne changez pas l'ombre par vous-même. Dans Androids Material Design, l'ombre est automatiquement déterminée par le degré d'élévation d'un élément. 

Selon cette question https://graphicdesign.stackexchange.com/questions/80644/where-are-the-light-sources-located-in-material-design la source de lumière est 

45 degrés d'altitude et 90 degrés d'angle

Vous ne devriez vraiment pas utiliser différentes ombres car cela détruirait la cohérence globale de la conception des matériaux. Dans ce cas, la seule chose à faire est d’élever vos éléments. Vous devriez peut-être relire les directives pour la conception de matériel: https://material.io/guidelines/material-design/environment.html#environment-light-shadow

0
xxtesaxx