实现的大概效果如上图所示,点击变色按钮可以实现按照按钮下部的四种提示颜色蒙层切换。
主要实现原理是使用了ImgeView的setColorFilter()方法。
该方法总共有3个重载:
a、public final voidsetColorFilter(intcolor, PorterDuff.Mode mode)
b、public voidsetColorFilter(ColorFilter cf)
c、public final voidsetColorFilter(intcolor) 我这里主要用到了b、c方法,值得一提的是b方法使用的时候使用到ColorMatrix,并调用了
colorMatrix.setSaturation(0) //setSaturation方法参数为0是代表灰色,为1代表原图,其他还有很多值代表不同色值
在没有接触到这个方法之前,我一直以为要实现这种效果,需要经过复杂的色值计算,然后重绘来实现,但今天偶然看到这个方法,才发现幸福来的那么突然。
1、这是我的activity代码
package com.example.walljiang.piececode;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class ColorFilterActivity extends Activity implements View.OnClickListener {
private ImageView iv1, iv2;
private Button btn1;
private int clickControl = 0;
public static Intent createIntent(Context context) {
I