当前位置: 首页 > 知识库问答 >
问题:

如何在圆形imageview周围添加阴影

夏祺然
2023-03-14

主要活动。xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<RelativeLayout
    android:id="@+id/layoutTop"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:background="#355482" >
</RelativeLayout>

<RelativeLayout
    android:id="@+id/layoutBottom"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_alignParentBottom="true"
    android:layout_below="@+id/layoutTop"
    android:background="@drawable/loading" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="113dp"
        android:text="Profile"
        android:textColor="#355482"
        android:textSize="20dp"
        android:textStyle="bold" />
</RelativeLayout>

<ImageView
    android:id="@+id/overlapImage"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="132dp"
    android:adjustViewBounds="true"
    android:background="@drawable/round_image"
    android:src="@drawable/ic_launcher" />

这是一张圆形的照片。xml:

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval">

<solid android:color="#ffffff" />
<corners android:radius="2dp"/>

<size
    android:height="80dp"
    android:width="80dp" />

<padding
    android:bottom="0dp"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp" />

</shape>

我尝试了一些阴影效果的代码,但它不起作用。

共有3个答案

葛学民
2023-03-14

创建一个圆形阴影。xml文件,并使用此代码,这对我很有用。根据您的要求更改半径。

圈出你的影子。xml

<!-- Drop Shadow -->
<item>
    <shape android:shape="oval">
        <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp" />

        <solid android:color="#00CCCCCC" />

        <corners android:radius="3dp" />
    </shape>
</item>
<item>
    <shape android:shape="oval">
        <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp" />

        <solid android:color="#10CCCCCC" />

        <corners android:radius="3dp" />
    </shape>
</item>
<item>
    <shape android:shape="oval">
        <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp" />

        <solid android:color="#20CCCCCC" />

        <corners android:radius="3dp" />
    </shape>
</item>
<item>
    <shape android:shape="oval">
        <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp" />

        <solid android:color="#30CCCCCC" />

        <corners android:radius="3dp" />
    </shape>
</item>
<item>
    <shape android:shape="oval">
        <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp" />

        <solid android:color="#50CCCCCC" />

        <corners android:radius="3dp" />
    </shape>
</item>

<!-- Background Color (white) -->
<item>
    <shape android:shape="oval">
        <solid android:color="@android:color/white" />

        <corners android:radius="3dp" />
    </shape>
</item>
訾稳
2023-03-14

这比你想象的要简单得多。您的ImageView需要基于椭圆形背景显示为圆形,因为默认情况下它是方形的。然后您需要包括立面,它将按照您的预期显示。不能将椭圆形背景设置为透明,因为它不允许阴影高程。

这是可绘制/white_oval.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@android:color/white"/>
        </shape>
    </item>
</layer-list>

现在,在您的imageview中,我将跳过如何包含图像

<ImageView
    android:id="@+id/alert_icon"
    android:layout_width="@dimen/alert_icon"
    android:layout_height="@dimen/alert_icon"
    android:contentDescription="@string/your_shadow_rulez"
    android:background="@drawable/white_oval"
    android:elevation="@dimen/elevation_fab" />

当然,要确保图像视图的宽度和高度都匹配。海拔越高,阴影越大

看看这看起来多简单多漂亮

罗智刚
2023-03-14

希望这将帮助你:)

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="oval">
              <solid android:color="@color/gray"/>
                <!--shadow Color-->
        </shape>
    </item>

    <item
        android:left="0dp"
        android:right="0dp"
        android:top="0dp"
        android:bottom="3dp">
        <shape android:shape="oval">
             <solid android:color="@color/lightgrey"/>//Background Color
        </shape>
    </item>
</layer-list>

根据需要更改背景颜色和阴影颜色...

 类似资料:
  • 问题内容: 我用以下问题创建了CircularImageView:在android中创建圆形图像视图 在GitHub上下载项目 1)这是CircularImageView类: 2)我在我的布局中使用这样的: 你可以通过gradle依赖关系使用或下载带有所有修复程序的GitHub库 CircularImageView: compile ‘com.mikhaellopez:circularimagev

  • 我创建了一个CircularImageView并提出了以下问题:在android中创建圆形图像视图 在GitHub上下载项目 1)这是CircularImageView类: 您可以使用或下载我的GitHub库CircularImageView,并通过使用gradle dependency进行所有修复:

  • 我想创建与示例相同的LinearLayout边框: 在这个例子中,我们可以看到linearLayout周围的边框并不相同。如何使用XML绘图文件创建它? 目前,我只能在LinearLayout周围创建一个简单的边框,如下所示:

  • 问题内容: 我需要在某个元素上创建一个盒子阴影,但仅在其右侧(例如)。我做的方式是包装内部元件到外层一个和这样的阴影其他三面是不可见的。 有没有更好的方法来实现这一目标?喜欢吗? 编辑 :我的意图是 仅 创建阴影的垂直部分。与规则的作用完全相同。 问题答案: 是的,您可以使用box-shadow规则的shadow spread属性: 第四个属性是阴影散布,您可以使用它来改变阴影的散布,使阴影看起来

  • 我有以下代码: null null 我想在它周围添加一个小框,并且为了更好地向大家展示我在寻找什么样的输出,那么最后我想要这样: 所以,我现在缺少的是 与黑色,我不希望ox填充 ,它应该与上面的图片大约相同的高度和宽度。把它看作是一个站点的预加载器。在页面的中间,一个带有 徽标的小型/中型框显示在其内部,如上面所示。 注意:动画应该在盒子里面工作,而不应该去盒子外面,所以当你运行上述代码时的动画应

  • 如何为线性布局显示阴影。我想要白色圆形背景,线条布局周围有阴影。到目前为止,我已经这样做了。 和rounded\u rect\u形状。xml目录下的xml