2024年Android最全Android滤镜效果ColorMatrix用法二(2),移动应用开发面试题
·
最后笔者收集整理了一份Flutter高级入门进阶资料PDF
以下是资料目录和内容部分截图
里面包括详细的知识点讲解分析,带你一个星期入门Flutter。还有130个进阶学习项目实战视频教程,让你秒变大前端。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
mRandom = new Random();
mTextView = findViewById(R.id.tv_array);
mImageView = findViewById(R.id.ivc);
mSrc = BitmapFactory.decodeResource(getResources(), R.drawable.img_hudie);
}
public void generateArray(View view) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 20; i++) {
float v = mRandom.nextFloat();
v = (float) (Math.round(v * 100000f) / 1000) / 100;//保留两位小数
mFloats[i] = v;
stringBuilder.append(v + "\t\t\t");
if (i == 4 || i == 9 || i == 14) {
stringBuilder.append("\n");
}
}
mTextView.setText(stringBuilder);
changeColor(mFloats);
}
private void changeColor(final float[] floats) {
new Thread(new Runnable() {
@Override
public void run() {
mBitmap = ImageHelper.handlerImagebyMatrixArray
(mSrc, floats);
mHandler.post(new Runnable() {
@Override
public void run() {
mImageView.setImageBitmap(mBitmap);
}
});
}
}).start();
}
/**
* 初始化效果
* @param view
*/
public void reset(View view) {
mFloats = new float[]{
1, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0
};
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 20; i++) {
stringBuilder.append(mFloats[i] + "\t\t\t");
if (i == 4 || i == 9 || i == 14) {
stringBuilder.append("\n");
}
}
mTextView.setText(stringBuilder);
changeColor(mFloats);
}
/**
* 老照片效果
* @param view
*/
public void old_pic(View view) {
mFloats = new float[]{
0.393f, 0.769f, 0.189f, 0, 0,
0.349f, 0.686f, 0.168f, 0, 0,
0.272f, 0.534f, 0.131f, 0, 0,
1, 1, 1, 0, 0
};
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 20; i++) {
stringBuilder.append(mFloats[i] + "\t\t\t");
if (i == 4 || i == 9 || i == 14) {
stringBuilder.append("\n");
}
}
mTextView.setText(stringBuilder);
changeColor(mFloats);
}
/**
* 底片效果
* @param view
*/
public void dipian(View view) {
mFloats = new float[]{
-1, 0, 0, 0, 255,
0, -1, 0, 0, 255,
0, 0, -1, 0, 255,
0, 0, 1, 0, 255
};
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 20; i++) {
stringBuilder.append(mFloats[i] + "\t\t\t");
if (i == 4 || i == 9 || i == 14) {
stringBuilder.append("\n");
}
}
mTextView.setText(stringBuilder);
changeColor(mFloats);
最后
以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。
后面我就自己整理了一套资料,还别说,真香!
资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。






网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
TWKsR-1715617212497)]
[外链图片转存中…(img-fZA45pdz-1715617212497)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐



所有评论(0)