Comment obtenir l'ombre sur Android layout linéaire? [dupliquer]

Double Possible:

comment mettre de l'ombre à une Vue dans android?

dans mon application Android j'ai besoin d'une mise en page avec des coins ronds et l'arrière-plan devrait avoir un peu de transparence. Pour cela j'utilise ce xml, cela fonctionne très bien:

customshape.xml:

<shape android:shape="rectangle"> 
    <gradient android:startColor="#E2FFFFFF" android:endColor="#E2D0E3E5" android:angle="270"/> 
    <corners android:radius="10dp" /> 
</shape>

de style.xml:

<style name="LinearLayoutRoundCorners">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:background">@drawable/customshape</item>
</style>

j'ai aussi besoin d'une petite ombre à la droite et en bas de la disposition. Je ne peux pas trouver un moyen de le faire. J'ai vu un hack où vous avez mis un autre layout derrière pour le faire ressembler à une ombre, mais ça ne marchera pas pour moi car mon layout est transparent, donc ça ne sera pas très beau. Comment puis-je obtenir une belle ombre sur ma mise en page sans utiliser une image comme arrière-plan de la mise en page?

22
demandé sur Community 2011-04-02 19:06:17

2 réponses

autant que je sache, il n'y a aucun moyen d'appliquer une ombre à un objet View . Je vous suggère de jeter un oeil à nine patches, je les ai utilisés pour faire une ombre.

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

(Voir Aussi cette réponse Custom ImageView with shadow drop )

8
répondu Mats Hofman 2017-05-23 10:31:12

je sais que c'est très tard, mais je lisais ce combo de questions/réponses et bien qu'il s'agisse d'une méthode alternative qui ne nécessite pas d'image. J'ai écrit un billet sur mon blog pour expliquer. Je pense qu'il serait utile pour les futurs visiteurs d'avoir ces deux réponses à portée de main.

http://web.archive.org/web/20120520203231/http://www.anotherandroidblog.com/2011/06/29/drop-shadow-linearlayout /

64
répondu javahead76 2017-04-18 23:07:58