zoukankan      html  css  js  c++  java
  • Android笔记之ImageView设置图片以灰色显示

    有时候我们需要将ImageView加载的图片去彩色,以黑白灰度显示,如qq的不在线头像。
    第一种,我们可以通过将彩色bitmap图转换成黑白灰度bitmap图:

     /**
         * 图片去色,返回灰度图片
         * @param bmpOriginal 传入的图片
         * @return 去色后的图片
         */
        public static Bitmap toGrayScale(Bitmap bmpOriginal) {
            int width, height;
            height = bmpOriginal.getHeight();
            width = bmpOriginal.getWidth();
    
            Bitmap bmpGrayScale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
            Canvas c = new Canvas(bmpGrayScale);
            Paint paint = new Paint();
            ColorMatrix cm = new ColorMatrix();
            cm.setSaturation(0);
            ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
            paint.setColorFilter(f);
            c.drawBitmap(bmpOriginal, 0, 0, paint);
            return bmpGrayScale;
        }

    第二种,利用ImageView的setColorFilter方法实现:

      ColorMatrix cm = new ColorMatrix();
            cm.setSaturation(0); // 设置饱和度
            ColorMatrixColorFilter grayColorFilter = new ColorMatrixColorFilter(cm);
            imageView.setColorFilter(grayColorFilter); // 如果想恢复彩色显示,设置为null即可
  • 相关阅读:
    没有人可以阻碍我前进的脚步 , 遇佛杀佛,遇魔杀魔
    1/2 2008
    错过,用心
    公会平台
    久违的、讨厌的感觉
    CSS选择符
    jquery ajax
    2013年职业规划
    js小助手
    css 伪类
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/13086742.html
Copyright © 2011-2022 走看看