BlurMaskFilter发光效果

21 篇文章 0 订阅

(1)函数生明:

public MaskFilter  setMaskFilter(MaskFilter maskfilter) ,不支持硬件加速,必须关闭硬件加速才可以。

        setLayerType(LAYER_TYPE_SOFTWARE,null);

(2)BlurMaskFilter构造函数:

public BlurMaskFilter(float radius,Blur style)

参数:float radius:用来定义模糊半径,同样采用高斯模糊算法

Blur style:发光样式,有Blur.INNER(内发光)、Blur.SOLID(外发光)、Blur.NORMAL(内外发光)、Blur.OUTER(仅显示发光效果)这种模式下比较特殊,会把原图像中除发光部分外的其他部分全部变为透明。

 setLayerType(LAYER_TYPE_SOFTWARE,null);
        mPaint = new Paint();
        mPaint.setColor(Color.RED);
        mPaint.setStyle(Paint.Style.FILL);
        mPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.INNER));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android 中实现毛笔效果,可以使用 Paint 类的 setMaskFilter 方法。具体实现步骤如下: 1. 创建一个自定义 View,并在 onDraw 方法中实现绘图逻辑。 2. 创建一个 Paint 对象,并设置其样式为 STROKE。 3. 使用 setMaskFilter 方法为 Paint 对象设置一个 BlurMaskFilter,可以调整模糊半径大小来控制毛笔效果的强度。 4. 在 onDraw 方法中使用 Canvas 对象的 drawPath 方法绘制手指滑动轨迹。 以下是一个简单的实现示例: ```java public class MyView extends View { private Path mPath; private Paint mPaint; public MyView(Context context) { super(context); init(); } public MyView(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init() { mPath = new Path(); mPaint = new Paint(); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeWidth(10); mPaint.setColor(Color.BLACK); mPaint.setMaskFilter(new BlurMaskFilter(50, BlurMaskFilter.Blur.NORMAL)); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawPath(mPath, mPaint); } @Override public boolean onTouchEvent(MotionEvent event) { float x = event.getX(); float y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mPath.moveTo(x, y); break; case MotionEvent.ACTION_MOVE: mPath.lineTo(x, y); break; case MotionEvent.ACTION_UP: break; } invalidate(); return true; } } ``` 在这个示例中,我们创建了一个自定义 View,使用了一个 Path 对象来保存手指滑动的轨迹,使用了一个 Paint 对象来绘制轨迹,并使用了 setMaskFilter 方法为 Paint 对象设置了一个模糊滤镜来实现毛笔效果。在 onTouchEvent 方法中,我们根据手指的移动轨迹更新 Path 对象,并调用 invalidate 方法触发 onDraw 方法重新绘制视图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值