如何在Android中的圆形ImageView中添加阴影效果?

6 xml android shadow imagebutton

我的布局中有一个ImageView,它是圆形的.我想对ImageView1产生阴影效果.任何人都告诉我该怎么做?我的代码如下:

main.xml中

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/view88"
        android:layout_alignParentLeft="true"
        android:src="@drawable/hh" />
Run Code Online (Sandbox Code Playgroud)

可绘制文件夹中的hh.xml

   <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="ring"
      android:innerRadiusRatio="3"
      android:thickness="10dp"

       android:useLevel="false">
   <solid android:color="#FFFFFF" />
   <stroke android:width="5dp" android:color="#FFFFFF" />
   <gradient
      android:centerColor="@android:color/darker_gray" 
      android:endColor="@android:color/darker_gray" 
      android:startColor="@android:color/darker_gray"  />
    <size  android:height="140dp"
        android:width="120dp" />
 </shape>
Run Code Online (Sandbox Code Playgroud)

Ral*_*ina 7

我知道这个问题很老,但这是我的解决方案。我无法为椭圆的笔触添加渐变。渐变总是在圆的中心。解决这个问题的一个技巧是创建一个图层列表并制作 5 个同心圆,每个同心圆小 1pd,添加自己的阴影。

因此,要为 180x180 的圆形 ImageView 制作阴影,并且阴影从 #1A000000 到 #00000000,我做了:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape
            android:shape="oval">
            <stroke android:width="1dp"
                    android:color="#00000000" />
            <size
                android:width="190dp"
                android:height="190dp"/>
        </shape>
    </item>
    <item
        android:top="1dp"
        android:right="1dp"
        android:bottom="1dp"
        android:left="1dp">
        <shape
            android:shape="oval">
            <stroke android:width="1dp"
                    android:color="#05000000" />
            <size
                android:width="190dp"
                android:height="190dp"/>
        </shape>
    </item>
    <item
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"
        android:left="2dp">
        <shape
            android:shape="oval">
            <stroke android:width="1dp"
                    android:color="#0A000000" />
            <size
                android:width="190dp"
                android:height="190dp"/>
        </shape>
    </item>
    <item
        android:top="3dp"
        android:right="3dp"
        android:bottom="3dp"
        android:left="3dp">
        <shape
            android:shape="oval">
            <stroke android:width="1dp"
                    android:color="#0F000000" />
            <size
                android:width="190dp"
                android:height="190dp"/>
        </shape>
    </item>
    <item
        android:top="4dp"
        android:right="4dp"
        android:bottom="4dp"
        android:left="4dp">
        <shape
            android:shape="oval">
            <stroke android:width="1dp"
                    android:color="#15000000" />
            <size
                android:width="190dp"
                android:height="190dp"/>
        </shape>
    </item>
    <item
        android:top="5dp"
        android:right="5dp"
        android:bottom="5dp"
        android:left="5dp">
        <shape
            android:shape="oval">
            <stroke android:width="1dp"
                    android:color="#1A000000" />
            <size
                android:width="190dp"
                android:height="190dp"/>
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)


Sni*_*las 1

您不能使用分层可绘制对象并添加另一个环形或圆形,并在下方进行小偏移以创建投影效果吗?

就像是 :

<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/shadow"
        android:id="@id/shadow"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
    <item
        android:drawable="@drawable/hh"
        android:id="@id/ring"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</layer-list>
Run Code Online (Sandbox Code Playgroud)

哪里shadow有类似的东西

   <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="circle">
   <gradient
      android:centerColor="@android:color/darker_gray" 
      android:endColor="@android:color/darker_gray" 
      android:startColor="@android:color/darker_gray"  />
    <size  android:height="140dp"
        android:width="120dp" />
 </shape>
Run Code Online (Sandbox Code Playgroud)