package com.loaderman.customviewdemo.view;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.util.AttributeSet;
import android.view.View; import com.loaderman.customviewdemo.R; public class LightBookView extends View {
private Paint mBitPaint;
private Bitmap BmpDST,BmpSRC; public LightBookView(Context context, AttributeSet attrs) {
super(context, attrs);
mBitPaint = new Paint();
BmpDST = BitmapFactory.decodeResource(getResources(), R.drawable.book_bg, null);
BmpSRC = BitmapFactory.decodeResource(getResources(),R.drawable.book_light,null);
} @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); canvas.save(); canvas.drawBitmap(BmpDST,0,0,mBitPaint);
mBitPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.LIGHTEN));
canvas.drawBitmap(BmpSRC,0,0,mBitPaint); mBitPaint.setXfermode(null);
canvas.restore();
}
}
  <com.loaderman.customviewdemo.view.LightBookView
android:layout_width="match_parent"
android:layout_height="match_parent" />

效果图:

PorterDuffXfermode之PorterDuff.Mode.LIGHTEN的更多相关文章

  1. PorterDuffXfermode之PorterDuff.Mode.XOR入门学习

    package com.loaderman.customviewdemo.view; import android.content.Context; import android.graphics.* ...

  2. PorterDuffXfermode之PorterDuff.Mode.MULTIPLY

    package com.loaderman.customviewdemo.view; import android.content.Context; import android.graphics.B ...

  3. PorterDuffXfermode之PorterDuff.Mode.DST_IN

    package com.loaderman.customviewdemo.view; import android.animation.ValueAnimator; import android.co ...

  4. PorterDuffXfermode之PorterDuff.Mode.SRC_IN

    package com.loaderman.customviewdemo.view; import android.content.Context; import android.graphics.B ...

  5. PorterDuffXfermode之PorterDuff.Mode.SRC_OUT

    package com.loaderman.customviewdemo.view; import android.content.Context; import android.graphics.B ...

  6. PorterDuffXfermode的用法

    1.下面的Xfermode子类可以改变这种行为: AvoidXfermode  指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图). PixelXorXfermode  当覆盖 ...

  7. Android 颜色渲染PorterDuff及Xfermode详解

    在讲具体的使用之前补充一点知识,这就是 ProterDuff的由来: 相信大多数人看到这个ProterDuff单词很奇怪了吧,这肿么个意思呢,然后就用有道啊,金山啊开始翻译,但是翻译软件给出的结果肯定 ...

  8. PorterDuff及Xfermode初识

    图像合成,是将两幅退昂放在一起的动作,它使得我们能够同时看到两幅图像的特征. 我们可以首先在Canvas对象上绘制一个位图对象,然后再相同的Canvas对象上绘制第二个位图对象的方式来实现合成.不过这 ...

  9. Android 颜色渲染(九) PorterDuff及Xfermode详解

    版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色渲染(九)  PorterDuff及Xfermode详解 之前已经讲过了除ComposeShader之外Shader的全部子类 ...

随机推荐

  1. 管理Linux软件——aptitude

    https://help.ubuntu.com/lts/serverguide/aptitude.html.en

  2. 【DELL存储】EMC会议 超融合+存储

    场景:盐城工厂 IT人数 4个人  机房200台 主要以虚拟化为主 实体机 PG ORACAL MYSQL dell产品线 提供整体方案 架构 针对整车厂 :传统+超融合 1. 介绍产品 1.1 超融 ...

  3. javascript数据判断是否有指定元素

    jquery方法: $.inArray(dataKey, dataArray) == -1 javascript方法: indexOf() 功能:根据指定的数据,从左向右,查询在数组中出现的位置,如果 ...

  4. 转【Ubuntu】添加虚拟网卡的三种方式

    原文:https://blog.csdn.net/White_Idiot/article/details/82934338 ------------------------------ 1. ifco ...

  5. git 将master分支合到自己的开发分支

    背景: 一般开发自己的分支都是从最新的master上拉取,但中间master会有改动,此时需要将最新的master合到自己的分支中 命令: 1. 查看当前的分支,星号标识为当前分支:(如果查询结果有m ...

  6. Git----拉取远程分支,git pull,git rebase,git pull --rebase的区别

    git pull 相当于自动的 fetch 和 merge 操作,会试图自动将远程库合并入本地库,在有冲突时再要求手动合并. git rebase 可以确保生产分支commit是一个线性结构,方便ro ...

  7. js闭包随记

    理解闭包可以将以上代码分解如下: function outerFunction() {     ;     function innerFunction(){         return count ...

  8. 微信小程序导入Vant报错

    作者:如也_d1c0链接:https://www.jianshu.com/p/0d2332984f8c来源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处. 先放出来Vant ...

  9. QCheckBox 使用本地图片的QSS样式

    setStyleSheet 为以下字符串,选中,未选中,有焦点,无焦点时显示不一样的图片 QString("QCheckBox::indicator:unchecked{image:url( ...

  10. 到spring官网创建第一个springboot工程

    登录到spring的官网,直接生成一个,然后倒入本地工程就可以了. https://start.spring.io/ 点击创建的时候. 就等于下载了这个工程. 下载后,倒入到我们的maven工程可以直 ...