实现类似QQ离线用户头像彩色变灰色的效果

头像由彩色变灰色有两种实现方式:

方法1把图片彩色图转换为纯黑白二色:

/**

* 将彩色图转换为纯黑白二色

*

* @param 位图

* @return 返回转换好的位图

*/

private Bitmap convertToBlackWhite(Bitmap bmp) {

int width = bmp.getWidth(); // 获取位图的宽

int height = bmp.getHeight(); // 获取位图的高

int[] pixels = new int[width * height]; // 通过位图的大小创建像素点数组

bmp.getPixels(pixels, 0, width, 0, 0, width, height);

int alpha = 0xFF << 24;

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

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

int grey = pixels[width * i + j];

// 分离三原色

int red = ((grey & 0x00FF0000) >> 16);

int green = ((grey & 0x0000FF00) >> 8);

int blue = (grey & 0x000000FF);

// 转化成灰度像素

grey = (int) (red * 0.3 + green * 0.59 + blue * 0.11);

grey = alpha | (grey << 16) | (grey << 8) | grey;

pixels[width * i + j] = grey;

}

}

// 新建图片

Bitmap newBmp = Bitmap.createBitmap(width, height, Config.RGB_565);

// 设置图片数据

newBmp.setPixels(pixels, 0, width, 0, 0, width, height);

Bitmap resizeBmp = ThumbnailUtils.extractThumbnail(newBmp, 380, 460);

return resizeBmp;

}

方法2使用ColorMatrix:

ColorMatrix类有一个内置的方法可用于改变饱和度。

传入一个大于1的数字将增加饱和度,而传入一个0~1之间的数字会减少饱和度。0值将产生一幅灰度图像。

代码如下:

ImageView image1 = (ImageView) findViewById(R.id.imageView1);

ColorMatrix matrix = new ColorMatrix();

matrix.setSaturation(0);

ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);

image1.setColorFilter(filter);

这里再扩展下,有时候我们需要把一张图变暗,也有两种方式可以实现。

方法1:

ImageView image3 = (ImageView) findViewById(R.id.imageView3);

Drawable drawable = getResources().getDrawable(R.drawable.mm);

drawable.setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

image3.setImageDrawable(drawable);

方法2:把要显示的图片作为background,把变暗的图片或颜色设为src,就可以实现变暗的效果。

android:id="@+id/imageView4"

android:layout_width="100dp"

android:layout_height="100dp"

android:layout_marginLeft="10dp"

android:background="@drawable/mm2"

android:src="#77000000" />

上图:

Demo下载:https://github.com/xie2000/ColorMatrixDemo

QQ交流群:6399844

android bitmap 饱和度 demo,实现类似QQ离线用户头像彩色变灰色的成效相关推荐

  1. 实现类似QQ离线用户头像彩色变灰色的效果

    头像由彩色变灰色有两种实现方式: 方法1把图片彩色图转换为纯黑白二色: /*** 将彩色图转换为纯黑白二色* * @param 位图* @return 返回转换好的位图*/private Bitmap ...

  2. android bitmap 饱和度 demo,Android GPUImage实现多种图像滤镜效果

    前言 GPUImage 是iOS下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜.GPUImage for Android是它在Android下的实现, ...

  3. QT之灰色头像(类似QQ离线头像)

    QT之灰色头像(类似QQ离线头像) QT之灰色头像类似QQ离线头像 概要 效果图 上代码 下代码 结尾 概要 在讲正常图片转灰色图片之前,我们先来了解下灰度图.灰度图又称为灰阶图,任何颜色都由红.绿. ...

  4. MFC 列表控件CListCtrl加载类似QQ界面的头像与文字

    本文主要讲述使用VS2012 MFC的CListCtrl(列表)控件加载类似于QQ界面的图片与文字数据.主要通过CListCtrl::InsertColumn.InsertItem.SetItemTe ...

  5. Android之发送短信后按钮(60秒)变灰色每隔一秒递减显示

    无论是做PC端还是android端,每次注册都有发送短信之后,60秒每隔一秒递减显示,如下图 这个地方需要注意的是按钮变灰色之后不能再点击,然后就是android更新UI,需要用handle,或者其它 ...

  6. 高逼格Android转场动画,轻松实现掘金用户头像转场动画

    前言 转场动画在交互上非常有优势,本文从转场动画的使用场景和方法起,最后是实现掘金中用户头像的转场动画. 转场动画适用的版本 Activity transition APIs 只有在Android 5 ...

  7. 安卓实现qq离线图像变灰色或暗色效果

    头像由彩色变灰色有两种实现方式: /** 方法1:* ColorMatrix类有一个内置的方法可用于改变饱和度.* 传入一个大于1的数字将增加饱和度,而传入一个0-1之间的数字会减少饱和度.0值将产生 ...

  8. Android加载用户头像的功能实现

    加载用户头像的过程是,首先从本地查看是否存储了用户的头像,如果有,则从本地读取后加载到ImageView中,如果没有,则去服务器下载头像保存到本地,并加载. public void initData( ...

  9. Android:使用百度地图SDK定位当前具体位置(类似QQ发表说说的选择地点功能)

    百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口. 可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问 ...

最新文章

  1. prototype.js 1.4版开发者手册
  2. 模式识别之基础---常用分类算法特性归纳
  3. Android ListView重写Adapter
  4. 布局:多列等高布局方法
  5. 服务器返回文件格式,iOS开发--服务器返回的数据解析
  6. teradata 数据定义
  7. java中jtextpane_Java JTextPane
  8. C++ 整型长度的获取 不同的系统
  9. LINUX命令 VS DOS命令
  10. 协议--SIP/SDP
  11. 利用DHT网络原理制作bt采集蜘蛛
  12. 执行python manage.py celery -A HttpRunnerManager worker --loglevel=info 报错问题集锦
  13. 关于高级交互设计师的5个经验总结
  14. TPS和QPS的区别和理解
  15. Xftp5 安装教程
  16. 昨天面了一位,见识到了Spring的天花板~
  17. Android 6.0/7.0权限
  18. windows,打印机无打印任务,仍不断打印
  19. 直播电商平台开发,video组件实现视频弹幕功能
  20. 【每日新闻】高盛与苹果合作推出AppleCard

热门文章

  1. get请求报错400状态码
  2. 吴恩达机器学习系列篇p31~p42
  3. ffmpeg命令分析-re
  4. C++调用ffmpeg命令推流【详细代码】
  5. 两项大奖加持,浩鲸科技福利小店-WHALE SELECT
  6. 微信内测邀请:公众号个人认证的过程和注意事项
  7. 【PS算法理论探讨三】 Photoshop中图层样式之 颜色叠加/渐变叠加/图案叠加 算法原理初探讨。...
  8. JavaSE_第2章 Java基础语法
  9. PHP编程入门与应用 PDF 影印超清版
  10. 图解浏览器渲染原理及流程