/**

* 将bitmap中的某种颜色值替换成新的颜色

* @param bitmap

* @param oldColor

* @param newColor

* @return

*/

public static Bitmap replaceBitmapColor(Bitmap oldBitmap,int oldColor,int newColor)

{

//相关说明可参考 http://xys289187120.blog.51cto.com/3361352/657590/

Bitmap mBitmap = oldBitmap.copy(Config.ARGB_8888, true);

//循环获得bitmap所有像素点

int mBitmapWidth = mBitmap.getWidth();

int mBitmapHeight = mBitmap.getHeight();

int mArrayColorLengh = mBitmapWidth * mBitmapHeight;

int[] mArrayColor = new int[mArrayColorLengh];

int count = 0;

for (int i = 0; i < mBitmapHeight; i++) {

for (int j = 0; j < mBitmapWidth; j++) {

//获得Bitmap 图片中每一个点的color颜色值

//将需要填充的颜色值如果不是

//在这说明一下 如果color 是全透明 或者全黑 返回值为 0

//getPixel()不带透明通道 getPixel32()才带透明部分 所以全透明是0x00000000

//而不透明黑色是0xFF000000 如果不计算透明部分就都是0了

int color = mBitmap.getPixel(j, i);

//将颜色值存在一个数组中 方便后面修改

if (color == oldColor) {

mBitmap.setPixel(j, i, newColor); //将白色替换成透明色

}

}

}

return mBitmap;

}

使用方法:

iv_image.setImageBitmap(BitmapUtil.replaceBitmapColor(gifDecoder.getFrame(i), Color.WHITE, Color.TRANSPARENT));

Android开发——异步任务中Activity销毁时的问题

0.  前言 在Android开发中经常会发生Activity的销毁重建,比如用户长时间接听一个电话后回到APP.在Android开发--Fragment知识整理(二)中我们提到了使用Fragment ...

android开发在adapter中使用反射添加元素

android开发中最常用的控件之一就是listview,伴随listview还要有adapter和放入适配器的item.然后假设其中有一部分item的生成符合一定规律,Item item = new ...

Android开发:Eclipse中SqliteManager插件使用

通常开发Android的时候要使用到数据库操作,会遇到下面小问题: 数据库文件在哪?怎样訪问或操作? 能够通过:打开DDMS->File Explorer看到的sqlite数据库在eclipse ...

Android 开发替换Launcher

做android产品的时候,根据需求会制定各种各样的Launcher,因此,在此记录替换系统Launcher的流程. 1.修改frameworks/base/core/java/android/con ...

Android开发 获取视频中的信息&lpar;例如预览图或视频时长&rpar; MediaMetadataRetriever媒体元数据检索器

前言 在Android里获取视频的信息主要依靠MediaMetadataRetriever实现 获取最佳视频预览图 所谓的最佳就是MediaMetadataRetriever自己计算的 /** * 获 ...

Android开发-解决 AIDL 中找不到couldn&&num;39&semi;t find import for class错误

最近在使用AIDL做IPC的时候,在处理复杂的数据类型的时候,编译器总是报couldn't find import for class错误,所以在这里总结下AIDL使用的时候的一些注意事项,希望对你能 ...

Android开发 解决AlertDialog中的EditText无法调出输入法的问题

在AlertDialog中使用自定义的View,如果View中有EditText,在上面点击,默认是跳不出软键盘的,不是焦点的问题.解决方法,有两种,一是把AlertDialog换成Dialog,但这 ...

Android开发&lpar;24&rpar;---安卓中实现多线程下载(带进度条和百分比)

当我们学完java中多线程的下载后,可以将它移植到我们的安卓中来,下面是具体实现源码: DownActivity.java package com.example.downloads; import ...

随机推荐

redis集群安装

1.普通安装 安装环境 centos 6.8 1.安装必要包 yum install gcc yum -y install wget 2.下载解压 wget http://download.redis ...

Android 高仿微信支付密码输入控件

像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现这个功能. 老样子,投篮需要找准角度,变成需要理清思路.对于这个"小而美"的控件,我们思 ...

JavaScript使用DeviceOne开发实战(三)仿微信应用

这是一个系列的文档,长期目标是利用DeviceOne开发一些目前使用广泛的优质手机应用,我们会最大化的实现这些应用的每一个功能和细节,不只停留在简单的UI模仿和Demo阶段,而是一个基本可以使用的实际 ...

周期串(Periodic Strings&comma;UVa455)

解题思路: 对一个字符串求其最小周期长度,那么,最小周期长度必定是字符串长度的约数,即最小周期长度必定能被字符串长度整除 其次,对于最小周期字符串,每位都能对应其后周期字串的每一位, 即 ABC  A ...

c&num;中如何将一个string数组转换为int数组

举个例子. string[] strArray = "a,b,c,d,e,f,g".Split(new char[]{ ',' }); int[] intArray; //C# 3 ...

poj-3040 Allowance &lpar;贪心)

http://poj.org/problem?id=3040 FJ 有n种不同面值的硬币,每种硬币都有相应的个数,大面值的硬币值总能被小面值的硬币值整除,每周需要支付 Bessie   c元,问最多能 ...

HDU 1255 覆盖的面积 线段树&plus;扫描线

同 POJ1151 这次是两次 #include #include #include #includ ...

Android APN配置

APN概念 APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务).CMNET(除了WAP以外的服务目前都 ...

bzoj 2002 弹飞绵羊 分块

正解lct,然而本蒟蒻并不会.... 分块思路很清晰,处理出每个点弹出所在块所需要的步数及出去后的第一个位置 #include #include

dt常用类

经常使用的一些datatable的操作,包括一些过滤去重的方法 using System; using System.Collections; using System.Collections.Gen ...

android bitmap着色,android开发 替换bitmap中的颜色值相关推荐

  1. 【Android 逆向】Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序运行 | EIP 寄存器的存档与恢复 )

    文章目录 一.调试进程中寄存器的作用 二.通过 EIP 寄存器控制程序运行 三.EIP 寄存器的存档与恢复 一.调试进程中寄存器的作用 内存是一个线性结构 , 将动态库加载到内存中后 , 每个动态库文 ...

  2. 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★

    文章目录 一.Android 进程注入工具开发系列博客 二.Android 进程注入工具 源码下载编译 三.逆向环境搭建 四.使用注入工具进行逆向操作 1.获取远程进程号 2.注入工具准备 3.注入动 ...

  3. 【Android 逆向】Android 进程注入工具开发 ( 远程调用总结 | 远程调用注意事项 )

    文章目录 一.远程调用总结 二.远程调用注意事项 一.远程调用总结 在之前的博客 [Android 逆向]Android 进程注入工具开发 ( 调试进程中寄存器的作用 | 通过 EIP 寄存器控制程序 ...

  4. Android Tint着色器

    文章目录 Android Tint着色器 概述 使用 XML中使用 代码中使用 选择器使用 tintMode详解 Android Tint着色器 概述 tint 译为着色.tint一般与tintMod ...

  5. 探究Bitmap在Android中的内存占用

    一.Bitmap的内存占用检测 Bitmap 一直以来都是 Android App 的内存消耗大户,很多 Java 甚至 native 内存问题的背后都是不当持有了大量大小很大的 Bitmap,我们可 ...

  6. Android 系统性能优化(39)---Android内存优化之三:打开MAT中的Bitmap原图

    Android内存优化之三:打开MAT中的Bitmap原图 在使用MAT查看应用程序内存使用情况的时候,我们经常会碰到Bitmap对象以及BitmapDrawable$BitmapState对象,而且 ...

  7. 《Android 应用案例开发大全(第3版)》——第2章,第2.8节壁纸中的着色器开发...

    本节书摘来自异步社区<Android 应用案例开发大全(第3版)>一书中的第2章,第2.8节壁纸中的着色器开发,作者 吴亚峰 , 苏亚光 , 于复兴,更多章节内容可以访问云栖社区" ...

  8. 《Android 应用案例开发大全(第3版)》——第2.8节壁纸中的着色器开发

    本节书摘来自异步社区<Android 应用案例开发大全(第3版)>一书中的第2章,第2.8节壁纸中的着色器开发,作者 吴亚峰 , 苏亚光 , 于复兴,更多章节内容可以访问云栖社区" ...

  9. android 获取图片bitmap对象,Android中Glide获取图片Path、Bitmap用法详解

    脚本之家在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path.Bitmap用法,以及实现的代码分析. 1. 获取Bitmap ...

最新文章

  1. 最佳拟合直线_JAVA
  2. 统计学习方法第15章-奇异值分解SVD
  3. 记2个月来,我在Csdn 掀起的微软面试风暴
  4. 随笔小杂记(六)——tqdm进度条显示出现多余行
  5. 【雕刻机】使用雕刻机雕刻PCB
  6. LODOP打印项水平居中
  7. 标准c++库、stl库,boost库,qt库
  8. Spark入门基本操作
  9. 开发一个App要100万? 太扯淡
  10. 全网整合营销能力训练要点
  11. Windows最值得安装的小众软件
  12. ubuntu软件:无法从“extensions.gnome.org”下载更新
  13. pycharm汉化教程
  14. 在3dmax中导入的动画摄像机巡游与主摄像机之间的切换
  15. 解决AutoCAD软件打开CASS软件成图字体显示成问号的问题
  16. 【数据库原理】关系代数的实例和练习
  17. 【深度学习】 MAE|心中无码,便是高清
  18. Android Studio 文件Excluded不显示找回
  19. 计算机实战项目、毕业设计、课程设计之 含论文+辩论PPT+源码等]微信小程序ssm竞赛管理平台小程序+后台管理系统
  20. Ubuntu18.04安装Matlab2019b

热门文章

  1. 鸿蒙生态与苹果生态有什么区别,华为想用鸿蒙统一生态,苹果直接用芯片大一统,走到华为前面?...
  2. 实战Veeam Backup Replication 9.5 Upgrade to Veeam Backup Replication 10
  3. 华为云 - 公有云产品 - OBS计费说明
  4. 一文读懂公有云的现状与未来
  5. 分布式文件系统-HDFS(   HDFS全称是Hadoop Distributed System)
  6. Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
  7. Spring MVC学习总结(14)——SpringMVC测试框架之mockMVC详解
  8. Json学习总结(3)——Jsonp跨域及Rest接口实现
  9. Java基础学习总结(94)——Java线程再学习
  10. Html学习总结(2)——Html页面head标签元素的意义和应用场景