Android程序如何在代码中改变图片原有的颜色
最近一边找工作一边完善之前的项目。之前安卓初中级的项目是模仿酷狗音乐播放器的。下载一个apk文件,改后缀,解压,然后根据官方应用的布局,用得到的图片照着做出来。记得酷狗首页有好几种主要图标,解压后得到的白色加透明组合成的,但官方应用是换主题颜色会跟着改变,这回正好有空就网上找来方法跟着改。
因为只是把白色改成别的颜色,所以不难。
package com.example.ex_tupian;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;public class MainActivity extends Activity {private ImageView ma;private Bitmap bitmap, updateBitmap; private Canvas canvas; private Paint paint; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ma = (ImageView) findViewById(R.id.p_w_picpathView00);bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.d1); updateBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig()); canvas = new Canvas(updateBitmap); paint = new Paint(Paint.ANTI_ALIAS_FLAG);//抗锯齿的画笔 final ColorMatrix cm = new ColorMatrix(); paint.setColorFilter(new ColorMatrixColorFilter(cm)); paint.setColor(Color.BLACK); paint.setAntiAlias(true); final Matrix matrix = new Matrix(); canvas.drawBitmap(bitmap, matrix, paint); ma.setImageBitmap(updateBitmap); findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubcm.set(new float[] { 160 / 128f, 0, 0, 0, 0,// 红色值 0, 32 / 128f, 0, 0, 0,// 绿色值 0, 0, 240 / 128f, 0, 0,// 蓝色值 0, 0, 0, 1, 0 // 透明度 }); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap(bitmap, matrix, paint); ma.setImageBitmap(updateBitmap); }});}
}
主要就是这个在设置颜色
new float[] { 160 / 128f, 0, 0, 0, 0,// 红色值
0, 32 / 128f, 0, 0, 0,// 绿色值
0, 0, 240 / 128f, 0, 0,// 蓝色值
0, 0, 0, 1, 0 // 透明度
}
这样设置起来的是紫色的,这只是很简单的转换,能达到效果,如果需要更多的内容,可以参考这些网址或者自己搜索。
http://blog.csdn.net/loongggdroid/article/details/18708911
http://www.cnblogs.com/leon19870907/articles/1978065.html
然后一个就是因为平时都直接用8位十六进制设置颜色,这边需要RGB,所以参考这个网址
http://blog.csdn.net/yanzi1225627/article/details/8581270
转载于:https://blog.51cto.com/qq445493481/1626006
Android程序如何在代码中改变图片原有的颜色相关推荐
- Android开发——Java代码动态改变图片颜色
前言 在Android开发当中,我们会遇到多张图片需要改变背景颜色,我们不能用代码写死,但是我们setBackgroundColor方法改变是会被把我们背景变成直角的,但是从用户体验感的角度来讲是带有 ...
- Android如何在java代码中设置margin
Android如何在java代码中设置margin,也就是组件与组件之间的间距. 代码中设置: LinearLayout.LayoutParams params = new LinearLayout. ...
- 新手零基础:飞桨代码中关于图片路径读取和资源解压报错
#飞桨代码中关于图片路径读取和资源解压报错 1.路径读取 在进行路径图片读取时,不同版本的python的os模块在路径拼接时会报错,一般情况下os.path.join(path,name),是可以将路 ...
- java程序阅读题6,阅读以下说明和java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对 - 信管网...
阅读以下说明和Java程序,填补代码中的空缺(1)-(6),将解答填入答题纸的对应栏内. [说明] 很多依托扑克牌进行的游戏都要先洗牌.下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张 ...
- MDK AC6 不支持在代码中改变优化等级
MDK AC6 不支持在代码中改变优化等级 MDK AC6 不支持在代码中改变优化等级 MDK AC6 不支持在代码中改变优化等级 armclang does not support changing ...
- ctf图片隐写中改变图片高和宽
ctf图片隐写中改变图片高和宽 利用工具 Hex Editor Neo将图片进行十六进制分解, 然后我们可以找出该图片的像素高宽,转化成十六进制然后对应找到该像素点所在位置,进行修改即可.
- python二维图颜色函数_通过python改变图片特定区域的颜色详解
通过python改变图片特定区域的颜色详解 首先让我祭出一张数学王子高斯的照片,这位印在德国马克上的神人有多牛呢? 他是近代数学的奠基人之一,与牛顿, 阿基米德并称顶级三大数学家,随便找一个编程语言的 ...
- Android 如何从系统图库中选择图片
这几天我都在做Android的App,同时学习它的API,我将分享一些我学到的东西,比如: 如何从系统图库中选择图片. 首先,让我们来看看如何将手机系统图库集成到你的App中,然后再从图库中选择 ...
- Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18730223),请尊重他人的辛勤劳动成果,谢谢! 写这篇文 ...
最新文章
- mac版python连接mysql_Mac下Python连接MySQL · BlBana’s BlackHouse
- python的实现和测试是啥意思_Python接口自动化测试之pytest与unittest区别
- algorithm头文件下的常用函数
- 任何时候,写下一个类,一定要有三个函数
- Python数据清洗 - 洗什么?怎么洗?看完就明白了
- 如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定!
- oracle外部结合,浅谈Oracle外部文件
- 在PHP中使用协程实现多任务调度
- 软考高级系统分析师上午历年真题
- 专利局文件如何删除后面的注意事项
- 4-18快速生成get和set方法、格式化代码、数组的非空验证、订餐系统案例
- 一文搞懂 Flink如何移动计算
- “诗词吾爱”第38期擂台赛《伤春、惜春》获胜作品欣赏【转载】
- WPF界面美化(整体作用到控件),一步步教你使用FirstFloor.ModernUI
- 华为开发者大赛-昇腾AI初创大赛决赛暨星火计划Online第二期来啦!
- Celery (1)- 安装配置及使用
- OpenCV imwrite保存图片全黑原因
- 使用 Cipher CipherInputStream CipherOutputStream 实现对文件的加解密
- qt之QLabel图片自适应
- Flask 和 Django 的比较和选择
热门文章
- java编辑简单文本编辑器_简单的Java纯文本编辑器
- 无穷级数求和7个公式_双色球2019129期渗透围红蓝(6+1实战,附:7个双色球胆码公式)...
- Mysql常用词汇_mysql 数据库常用单词
- Java项目:零食商城系统(java+SSM+jsp+MySQL+EasyUI)
- java bean配置文件_Spring中多配置文件及引用其他bean的方式
- redis mysql查询数据类型_linux 常见的标识与Redis数据库详解
- prometheus--初见
- HTML上传excel文件,php解析逐条打印输出
- web架构之mysql服务器
- Node.js的url模块简介