zoukankan      html  css  js  c++  java
  • android xfermode绘图

    1、fermode:是来自 transfer-modes,在画笔中设置xfermode后,画笔在使用的时候就会应用设置的像素转换模式。就类似于ps中的选取功能,留下的选取是从原选区中去除还是合并,取交还是除去,就这么回事。

    2、fermode相关类之间的继承关系:

    3、直接继承子类有AvoidXfermode(避免绘图或者只在上边绘制)、PixelXorfermode(与目标做xor操作)和PorterDuffXfermode(一下几种模式)

    (1)使用xfermode,首先绘制的为dest,后绘制的为src。结果就是目标图形以某种mode显示在src上。

    (2)不要忘记设置关闭硬件加速,以在api 16以下起作用。setLayerType(LAYER_TYPE_SOFTWARE, paint);

    4、小案例:

    (1)一个空心圆效果。

    //目标
            canvas.drawCircle(90, 90, 90, paint);
            //设置运算方式
            paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.CLEAR));
            //
            canvas.drawCircle(90, 90, 30, paint);
            //清除fermode
            paint.setXfermode(null);

    首先绘制一个大圆,设置画笔的与画板的计算方式为清除,然后绘制一个小圆,清除绘制mode,就出现一个空心圆效果。

    (2)将图片处理为原形

            //目标
            canvas.drawCircle(90, 90, 90, paint);
            //设置运算方式
            paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN));
            //
            canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher), 0, 0, paint);
            //清除fermode
            paint.setXfermode(null);
  • 相关阅读:
    手机震动的节奏 Vibrator
    Andorid ZoomControls的用法
    Android AutoCompleteTextView用法
    动态添加/删除Spinner 菜单
    [国家集训队]排队
    [HNOI2012]永无乡
    文艺平衡树
    【AGC板刷记录】
    高级打字机
    [JSC2021 A~D + F]
  • 原文地址:https://www.cnblogs.com/hpustudent/p/4611353.html
Copyright © 2011-2022 走看看