Android如何实现滤镜效果ColorMatrix

  介绍

这篇文章将为大家详细讲解有关Android如何实现滤镜效果ColorMatrix,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。

具体内容如下

1。效果图

 Android如何实现滤镜效果ColorMatrix

2。矩阵算法

package  net.surina.myapplication15;   ,   import  android.graphics.Bitmap;   import  android.graphics.BitmapFactory;   import  android.graphics.Canvas;   import  android.graphics.ColorMatrix;   import  android.graphics.ColorMatrixColorFilter;   import  android.graphics.Paint;   import  android.os.Bundle;   import  android.text.InputType;   import  android.view.View;   import  android.widget.Button;   import  android.widget.EditText;   import  android.widget.GridLayout;   import  android.widget.ImageView;   ,   import  androidx.appcompat.app.AppCompatActivity;   ,   import  java.util.LinkedList;   import  java.util.Stack;   ,/* *   ,* @author  Deeson   *大敌;参考代码:https://github.com/DeesonWoo/MyColorMatrixDemo   ,*/public  class  MainActivity  extends  AppCompatActivity  implements  View.OnClickListener  {   ,   ,,,Bitmap 点阵;   ,,,ImageView  iv_photo;   ,,,GridLayout  matrixLayout;   ,,,//每个edittext的宽高   ,,,int  mEtWidth;   ,,,int  mEtHeight;   ,,,//保存20个edittext   ,,,EditText [], mEts =, new  EditText [20];   ,   ,,,//一维数组保存20个矩阵值   ,,,浮动[],mColorMatrix =, new 浮动[20];   ,   ,   ,,@Override   ,,,protected  void  onCreate (Bundle  savedInstanceState), {   ,,,,,,,super.onCreate (savedInstanceState);   ,,,,,,,setContentView (R.layout.activity_main);   ,,,,,,,bitmap =, BitmapFactory.decodeResource (getresource (),, R.drawable.girl);   ,,,,,,,iv_photo =, (ImageView), findViewById (R.id.iv_photo);   ,,,,,,,matrixLayout =, (GridLayout), findViewById (R.id.matrix_layout);   ,,,,,,,Button  btn_change =,(按钮),findViewById (R.id.btn_change);   ,,,,,,,Button  btn_reset =,(按钮),findViewById (R.id.btn_reset);   ,,,,,,,btn_change.setOnClickListener(这个);   ,,,,,,,btn_reset.setOnClickListener(这个);   ,,,,,,,iv_photo.setImageBitmap(位图);   ,   ,,,,,,,//我们无法在onCreate()方法中获得视图的宽高值,所以通过看法的帖子()方法,在视图创建完毕后获得其宽高值   ,,,,,,,matrixLayout.post (new  Runnable (), {   ,,,,,,,,,,@Override   ,,,,,,,,,,,public  void 运行(),{   ,,,,,,,,,,,,,,,mEtWidth =, matrixLayout.getWidth (),/, 5;   ,,,,,,,,,,,,,,,mEtHeight =, matrixLayout.getHeight (),/, 4;   ,,,,,,,,,,,,,,,addEts ();   ,,,,,,,,,,,,,,,initMatrix ();   ,,,,,,,,,,,}   ,   ,,,,,,,});   ,,,}   ,   ,,,//动态添加edittext   ,,,private  void  addEts (), {   ,,,,,,,for  (int 小姐:=,0;,小姐:& lt;, 20;,我+ +),{   ,,,,,,,,,,,EditText  et =, new  EditText(这个);   ,,,,,,,,,,,et.setInputType (InputType.TYPE_CLASS_NUMBER  |, InputType.TYPE_NUMBER_FLAG_DECIMAL);   ,,,,,,,,,,,大都会[我],=,等;   ,,,,,,,,,,,matrixLayout.addView (mEtWidth,,, mEtHeight);   ,,,,,,,}   ,,,}   ,   ,,,//初始化颜色矩阵   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Android如何实现滤镜效果ColorMatrix