Path曲线下的阴影绘制

本文介绍如何在Android中自定义View,利用Path绘制曲线并实现阴影效果。当MPchart库不能满足特定需求时,直接使用Path进行绘制更为灵活。开发思路包括使用Path的lineTo和quadTo方法绘制直线和曲线,通过clipRect和PorterDuff.Mode.CLEAR切割画布以实现Path下的阴影。详细实现代码可在Demo中查看。
摘要由CSDN通过智能技术生成

开发动机

我们经常使用MPchart来绘制各种类型的图表,非常好用。可以设置各种各样的样式。但是有时候满足不了我们的需求或者我们需要绘制的曲线很简单但是MPchart jar包不小,所以我们需要自定义view自己来绘制Path实现。通过Path绘制曲线比较简单,但是Path下的阴影还没有去实现过。

开发思路

绘制曲线比较简单,Path有方法可以直接绘制:
public void lineTo(float x, float y) 用来绘制直线
public void cubicTo(float x1, float y1, float x2, float y2,float x3, float y3)用来绘制曲线
我比较疑惑的是曲线下面的阴影应该怎么绘制。我们知道可以使用drawable.draw(canvas)来绘制Drawable,Drawable可以使用Shape来创建。那么Drawable怎么在Path的范围之内呢?稍微想一想就知道肯定把canvas切割成一个形状,然后在该canvas上绘制Drawable就能实现。于是去看了下MPchart的源码,发现很简单。
有一个核心方法是用Path切割画布:

    /**
     * Intersect the current clip with the specified path.
     *
     * @param path The path to intersect with the current clip
     * @return     true if the resulting is non-empty
     */
    public boolean clipPath(@NonNull Path path) {
        return clipPath(path, Region.Op.INTERSECT);
    }

所以,实现的代码就出来了。

开发实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值