`
wang_peng1
  • 浏览: 3944302 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android画图——颜色过滤

阅读更多
颜色的过滤 不是很懂,牵扯到颜色的数组配置吧,只把简单的代码写下吧:
mBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.balloons);
             mDrawable = context.getResources().getDrawable(R.drawable.balloons);
上面两个代码 分别得到一个Bitmap,和Drawable
private static void setContrastTranslateOnly(ColorMatrix cm, float contrast) {
            float scale = contrast + 1.f;
               float translate = (-.5f * scale + .5f) * 255.f;
            cm.set(new float[] {
                   1, 0, 0, 0, translate,
                   0, 1, 0, 0, translate,
                   0, 0, 1, 0, translate,
                   0, 0, 0, 1, 0,
                   });
        }

private static void setContrastScaleOnly(ColorMatrix cm, float contrast) {
            float scale = contrast + 1.f;
             //  float translate = (-.5f * scale + .5f) * 255.f;
            cm.set(new float[] {
                   scale, 0, 0, 0, 0,
                   0, scale, 0, 0, 0,
                   0, 0, scale, 0, 0,
                   0, 0, 0, 1, 0 });
          
        }
设置一个矩阵 进行颜色变化吧 只是没搞懂设置数值和颜色的关系
ColorMatrix cm = new ColorMatrix();
  mAngle += 2;
            if (mAngle > 180) {
                mAngle = 0;
            }
           
            //convert our animated angle [-180...180] to a contrast value of [-1..1]
            float contrast = mAngle / 180.f;

setContrastTranslateOnly(cm, contrast);
// 画笔设置颜色过滤
            paint.setColorFilter(new ColorMatrixColorFilter(cm));
            canvas.drawBitmap(mBitmap, x, y + 2*(mBitmap.getHeight() + 10),
                              paint);
//图片设置颜色过滤
// setContrastTranslateOnly(cm, contrast);
    //        mDrawable.setColorFilter(new ColorMatrixColorFilter(cm));
mDrawable.setColorFilter(new PorterDuffColorFilter(  0xffff00,PorterDuff.Mode.LIGHTEN));
            mDrawable.setBounds(new Rect(25, 330,150,430));
            mDrawable.draw(canvas);
画笔设置过滤 和图片设置过滤我没看出区别有多大,但是这里有两种方法设置颜色过滤
mDrawable.setColorFilter(new PorterDuffColorFilter(  0xffff00,PorterDuff.Mode.LIGHTEN));
mDrawable.setColorFilter(new ColorMatrixColorFilter(cm));
一个针对单色彩一个针对一个颜色矩阵
分享到:
评论

相关推荐

    安卓Android源码——画图程序源码.zip

    本资源“安卓Android源码——画图程序源码.zip”提供了这样一个应用的源代码,帮助开发者理解和实现自定义画布功能。 首先,让我们探讨一下Android中的画图机制。Android提供了一个名为`Canvas`的类,它是绘画的...

    Android源码——画图程序源码.zip

    这个"Android源码——画图程序源码.zip"文件包含了一个简单的Android应用程序,它允许用户在屏幕上自由绘制图形。通过分析这个源码,我们可以深入理解Android图形系统、触摸事件处理以及自定义View的机制。 首先,...

    matplotlib画图 —— 颜色集&小工具集合(csdn)————程序.pdf

    此外,`matplotlib`还提供了一系列预定义的颜色集,如`'Pastel1'`、`'Paired'`、`'Dark2'`等,这些颜色集通常包含一组和谐的颜色组合,可以用于创建多系列的图表,确保每个系列都能清晰区分。 例如,如果你想要创建...

    Android源码——画图工具源码.zip

    这个"Android源码——画图工具源码.zip"文件可能包含了一个完整的示例项目,帮助开发者理解如何在Android应用中实现自定义的绘图功能。以下是基于这个主题的详细知识点解释: 1. **自定义View**: - 在Android中,...

    Android源码——画图程序源码.7z

    这份"Android源码——画图程序源码.7z"压缩包包含了实现一个基本Android绘图应用的相关资源,包括图片和源代码文件。让我们深入探讨其中涉及的技术点。 首先,Android 画图程序源码很可能是实现了`View`或者`...

    Android源码——画图工具源码.7z

    这个“Android源码——画图工具源码.7z”压缩包很可能是包含了这样一个应用的源代码,以及可能的一些截图或示例图片。从提供的文件名来看,我们可以推测这可能是用于展示或测试画图工具效果的图片。下面,我们将深入...

    安卓Android源码——画图工具源码.zip

    这份“安卓Android源码——画图工具源码.zip”压缩包提供了一个实现此类功能的源代码示例。通过分析和学习这份源码,我们可以了解如何在Android上构建一个简单的画图应用。 首先,我们要明白Android应用的基本架构...

    小学信息技术第三册下 第4课 省事省力来画图——如何使用Logo重复命令教案 泰山版.doc

    小学信息技术第三册下 第4课 省事省力来画图——如何使用Logo重复命令教案 泰山版.doc

    小学信息技术第三册下 第4课 省事省力来画图——如何使用Logo重复命令 3教案 泰山版.doc

    小学信息技术第三册下 第4课 省事省力来画图——如何使用Logo重复命令 3教案 泰山版.doc

    Android 画图程序源码.rar

    Android 画图程序源码分析 在Android平台上开发一款画图程序,涉及到许多核心技术和组件。这个"Android 画图程序源码.rar"文件提供了一个实际的案例,可以帮助我们深入理解Android图形系统的工作原理,以及如何创建...

    安卓Android源码——纯java编写2d坦克小游戏.zip

    Canvas用于在屏幕上画图,而Paint则定义了颜色、样式等绘图属性。开发者可能还会用到Bitmap类来加载和处理图像资源,如游戏背景、坦克和子弹等。 4. **游戏逻辑与控制**:游戏的核心部分是游戏循环和事件处理。在...

    Android 画图程序源码.zip

    从"Android 画图程序源码.zip"的标题和描述中,我们可以推测该程序具备自动绘图功能,并能动态改变图形颜色。这涉及到Android的UI设计、绘图API、线程管理和颜色处理等多个技术领域。 首先,我们要了解Android的UI...

    android画图总结

    首先,我们来了解一下【Android画图学习总结(一)——类的简介.doc】中提到的基础知识。在Android中,Canvas是用于画图的画布,它提供了各种绘制几何形状、文本和图像的方法。而Paint则是绘画工具,用于设置颜色、...

    小学电脑画图——曲线教案.pdf

    这篇文档是关于小学电脑画图课程的教案,主要聚焦在教授学生如何绘制曲线。课程以“金色的秋天”为主题,旨在通过绘画活动帮助学生理解和掌握曲线的绘制技巧。以下是教案中的关键知识点: 1. **教学内容与策略**: ...

    看代码学Android开发系列:android画图程序源代码

    本教程将通过分析提供的“android画图程序源代码”来深入理解Android图形绘制的基本概念和技术。 首先,Android提供了多种方式来绘制图形,主要包括Canvas、Paint、Path以及Bitmap等类。Canvas是绘画的基础,它提供...

    Android画图示例集合

    这个"Android画图示例集合"项目,通过实际代码示例,将帮助开发者熟悉以上知识点,并能熟练地在Android应用中进行自定义图形绘制。在实践中不断探索和学习,你将能够创建出更多创新和吸引人的用户界面。

    Android组件——手势密码

    1. **GestureOverlayView**: 这是Android SDK提供的一种视图类,用于接收和显示用户的画图手势。开发者可以利用这个组件来捕捉用户的手势动作,并将其转换为可识别的密码。 2. **GestureDetector**: ...

    Android源码——火焰效果程序源码_new_55.zip

    这份"Android源码——火焰效果程序源码_new_55.zip"压缩包提供了实现这一特效的源代码,帮助开发者深入理解如何在Android应用中创建动态、逼真的火焰动画。下面,我们将详细探讨与这个项目相关的Android开发知识点。...

Global site tag (gtag.js) - Google Analytics