0

我有一个 .png 图像,它是圆形的,只是一个阴影。我所拥有的是一个ImageButton具有其android:src属性的图像。对于它的背景,我可以在可绘制文件中有一个 xml 文件。我现在想要的是让作为 png 的阴影图像位于另一个实体形状的后面 - > android:shape="oval"。

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

    <item android:drawable="@drawable/shadowimg" />

    <item>
        <shape android:shape="oval">

            <solid
                android:color="#d63a33"/>

            <size
                android:width="70dp"
                android:height="70dp"/>
        </shape>
    </item>
</layer-list>

正如您在代码中看到的,我正在添加一个带有android:drawable属性的阴影图像的项目。然而,这并没有让影子显现。它只是显示红色圆圈形状。但我想要实心红色圆形后面的阴影图像。根据我对层列表的微小了解,顶部的项目放在后面,底部的项目排在第一位。

更新:将图像阴影移动到底部后,我得到了效果,但是实心红色圆圈的大小太大,改变大小不会改变大小。

更新代码:

<?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="#d63a33"/>

            <size
                android:width="5dp"
                android:height="5dp"/>
        </shape>
    </item>
    <item android:drawable="@drawable/shadowimg" />
</layer-list>

**** 更新 2:**** 我注意到当我删除时<item android:drawable="@drawable/shadowimg" />我可以更改实心圆形的大小,但是当我添加它时,它默认为更大的大小。

这就是发生的事情:

在此处输入图像描述

如果有人需要,这是阴影图像:

在此处输入图像描述

4

2 回答 2

0

我认为这应该是您的解决方案:

<?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="#d63a33" />

        <size
            android:height="5dp"
            android:width="5dp" />
    </shape>
 </item>

 <item>
    <bitmap android:src="@drawable/shadowimg" />
 </item>

 <item>
    <shape android:shape="oval" >
        <solid android:color="#00000000" />

        <size
            android:height="5dp"
            android:width="5dp" />
    </shape>
 </item>

 </layer-list>

我添加了另一个具有所需大小的透明层。

于 2014-11-03T04:13:40.160 回答
0

实际上问题出在您使用的阴影中,阴影本身会留下一些填充。所以我们可以做的是,在我们使用描边填充第一个项目的纯色中留出一些空间。

使用此代码:

<?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="#d63a33" />

            <stroke
                android:width="7dp"
                android:color="#00000000" />
        </shape>
    </item>
    <item android:drawable="@drawable/shadowimg"/>
</layer-list>

然后使用 30dp 的高度和 30dp 的宽度,比如

<TextView
    android:id="@+id/titleText"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_centerVertical="true"
    android:layout_marginLeft="16dp"
    android:background="@drawable/circle_white"
    android:fontFamily="sans-serif-thin"
    android:gravity="center"
    android:text="Hi"
    android:textColor="#FF000000"
    android:textSize="16sp" />

如果你想增加视图的高度和宽度,也只需增加笔画的宽度。

于 2015-05-28T07:13:05.177 回答