介绍
这篇文章将为大家详细讲解有关Android如何实现滤镜效果ColorMatrix,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Android是什么
Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。
具体内容如下
1。效果图
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 nullAndroid如何实现滤镜效果ColorMatrix