Aide学

为CircleImageView添加阴影

2016-10-13  本文已影响1789人  Little_Mango

在5.X以上的版本可以使用elevation属性为控件添加阴影,但是需要控件设置了background属性并且不能设置颜色为transparent。

Snip20161013_11.png

ViewOutlineProvider

5.X提供这这个类,看文档的说明是

used for shadow casting and clipping

大意是用于裁剪阴影。
所以通过使用ViewOutlineProvider给CircleImageView设置outline,便可以设置阴影。

<de.hdodenhof.circleimageview.CircleImageView
    android:id="@+id/iv3"
    android:elevation="24dp"
    android:layout_width="96dp"
    android:layout_height="96dp"
    android:src="@mipmap/superman"
    app:civ_border_width="2dp"
    app:civ_border_color="#FF000000"/>

只需要设置elevation属性,不需要设置background属性。
java代码:

//获取outline
ViewOutlineProvider vop = new ViewOutlineProvider() {
    @Override
    public void getOutline(View view, Outline outline) {
        //修改outline
        outline.setOval(0,0,view.getWidth(),view.getHeight());
    }};
//重新设置
mCircleImageView3.setOutlineProvider(vop);
上一篇 下一篇

猜你喜欢

热点阅读