Code example for ColorMatrix

Methods: reset, setRotate

0
			mAllMatrix = new ColorMatrix();
		} 
		 
		if (null == mLightnessMatrix)
		{ 
			mLightnessMatrix = new ColorMatrix(); // 用于颜色变换的矩阵,android位图颜色变化处理主要是靠该对象完成
		} 
		 
		if (null == mSaturationMatrix)
		{ 
			mSaturationMatrix = new ColorMatrix();
		} 
		 
		if (null == mHueMatrix)
		{ 
			mHueMatrix = new ColorMatrix();
		} 
 
		switch (flag)
		{ 
		case 0: // 需要改变色相 
			// f 表示亮度比例,取值小于1,表示亮度减弱,否则亮度增强 
			mHueMatrix.reset();
			mHueMatrix.setScale(mHueValue, mHueValue, mHueValue, 1); // 红、绿、蓝三分量按相同的比例,最后一个参数1表示透明度不做变化,此函数详细说明参考
			// // android 
			// doc 
			Log.d("may", "改变色相");
			break; 
		case 1: // 需要改变饱和度 
			// saturation 饱和度值,最小可设为0,此时对应的是灰度图(也就是俗话的“黑白图”), 
			// 为1表示饱和度不变,设置大于1,就显示过饱和 
			mSaturationMatrix.reset();
			mSaturationMatrix.setSaturation(mSaturationValue);
			Log.d("may", "改变饱和度");
			break; 
		case 2: // 亮度 
			// hueColor就是色轮旋转的角度,正值表示顺时针旋转,负值表示逆时针旋转 
			mLightnessMatrix.reset(); // 设为默认值
			mLightnessMatrix.setRotate(0, mLightnessValue); // 控制让红色区在色轮上旋转hueColor葛角度
			mLightnessMatrix.setRotate(1, mLightnessValue); // 控制让绿红色区在色轮上旋转hueColor葛角度
			mLightnessMatrix.setRotate(2, mLightnessValue); // 控制让蓝色区在色轮上旋转hueColor葛角度
			// 这里相当于改变的是全图的色相 
			Log.d("may", "改变亮度");
			break; 
		} 
		mAllMatrix.reset();