我正在尝试使用以下代码实现椭圆形周围的阴影:
shadow = new Paint();
shadow.setColor(Color.YELLOW);
shadow.setShadowLayer(10, 0, 0, Color.YELLOW);
绘制函数如下所示:
c.drawOval(ovalRect, shadow);
super.draw(c); //Draws bitmap
所以首先它用包含阴影的颜料绘制椭圆形,然后在其顶部绘制具有透明度的位图(位图没有任何颜料)。
我得到以下结果: 正如您所看到的,阴影没有沿着椭圆形传播,而是被剪切掉了,什么可能导致这种行为?
最佳答案
您可以通过更改半径来尝试:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Drop Shadow Stack -->
<item>
<shape>
<corners android:radius="12dp" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#00CCCCCC" />
</shape>
</item>
<item>
<shape>
<corners android:radius="12dp" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#10CCCCCC" />
</shape>
</item>
<item>
<shape>
<corners android:radius="12dp" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#20CCCCCC" />
</shape>
</item>
<item>
<shape>
<corners android:radius="12dp" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#30CCCCCC" />
</shape>
</item>
<item>
<shape>
<corners android:radius="12dp" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#50CCCCCC" />
</shape>
</item>
<!-- Background -->
<item>
<shape>
<solid android:color="@android:color/white" />
<corners android:radius="12dp" />
</shape>
</item>
</layer-list>
关于java - 阴影层可能存在错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18532806/