为什么我写的android调色板小程序只能调单一颜色深浅,无法混合调色?

package com.example.palettebyandroid;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class MainActivity extends Activity {

private SeekBar  sb_red;
private SeekBar  sb_green;
private SeekBar  sb_blue;
private Bitmap bitmap;
private Bitmap newBitmap;
private Canvas canvas;
private ColorMatrix cm;
private Paint paint;
private SeekBar sb_transparent;
private ImageView iv_image;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    iv_image = (ImageView) findViewById(R.id.iv_image);
    sb_red = (SeekBar) findViewById(R.id.sb_red);
    sb_green = (SeekBar) findViewById(R.id.sb_green);
    sb_blue = (SeekBar) findViewById(R.id.sb_blue);
    sb_transparent = (SeekBar) findViewById(R.id.sb_transparent);

    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.after8);

    newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());

    canvas = new Canvas(newBitmap);

    paint =new Paint(); 

    cm = new ColorMatrix();

    cm.set(new float[] {
            1, 0, 0, 0, 0,
            0, 1, 0, 0, 0,
            0, 0, 1, 0, 0,
            0, 0, 0, 1, 0 
            });
    paint.setColorFilter(new ColorMatrixColorFilter(cm));

    canvas.drawBitmap(bitmap, new Matrix(), paint);

    sb_red.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            int progress = seekBar.getProgress();

            float fred = progress/128.0f;

            cm.set(new float[] {
                    fred, 0, 0, 0, 0,
                    0, 1, 0, 0, 0,
                    0, 0, 1, 0, 0,
                    0, 0, 0, 1, 0 });

            paint.setColorFilter(new ColorMatrixColorFilter(cm));

            canvas.drawBitmap(bitmap, new Matrix(), paint);

            iv_image.setImageBitmap(newBitmap);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {

        }
    });
    sb_green.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            int progress = seekBar.getProgress();

            float fgreen = progress/128.0f;

            cm.set(new float[] {
                    1, 0, 0, 0, 0,
                    0, fgreen, 0, 0, 0,
                    0, 0, 1, 0, 0,
                    0, 0, 0, 1, 0 });

            paint.setColorFilter(new ColorMatrixColorFilter(cm));

            canvas.drawBitmap(bitmap, new Matrix(), paint);

            iv_image.setImageBitmap(newBitmap);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {


        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {

        }
    });
    sb_blue.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            int progress = seekBar.getProgress();

            float fblue = progress/128.0f;

            cm.set(new float[] {
                    1, 0, 0, 0, 0,
                    0, 1, 0, 0, 0,
                    0, 0, fblue, 0, 0,
                    0, 0, 0, 1, 0 });

            paint.setColorFilter(new ColorMatrixColorFilter(cm));

            canvas.drawBitmap(bitmap, new Matrix(), paint);

            iv_image.setImageBitmap(newBitmap);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {

        }
    });
    sb_transparent.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            int progress = seekBar.getProgress();

            float ftran = progress/128.0f;

            cm.set(new float[] {
                    1, 0, 0, 0, 0,
                    0, 1, 0, 0, 0,
                    0, 0, 1, 0, 0,
                    0, 0, 0, ftran, 0 });

            paint.setColorFilter(new ColorMatrixColorFilter(cm));

            canvas.drawBitmap(bitmap, new Matrix(), paint);

            iv_image.setImageBitmap(newBitmap);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {

        }
    });

    }
}

2个回答

说实话,你的代码写得挺乱的。建议你参考这篇文章整理一下代码
http://www.devstore.cn/essay/essayInfo/1570.html

yongaidongbing
yongaidongbing 嗯啊#17
大约 4 年之前 回复

说实话,你的代码写得挺乱的。建议你参考这篇文章整理一下代码
http://www.devstore.cn/essay/essayInfo/1570.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
我的程序为什么只能调OnAccept函数
我建立了单文档的mfc程序.重载了OnAccept,OnClose,OnReceivernrnvoid CMySocket::OnAccept(...)rnrn AfxMessageBox("accept");rn .....rnrnrnvoid CMySocket::OnClose(...)rnrn AfxMessageBox("Close");rn....rnrnrn但是只有在客户端请求连接时会出现accept对话框,客户端断开或者发送消息时均没有反应,这是怎么回事啊,高手指点
ps调色板调色软件
ps cs版本以上都可以用的插件 影楼专业调色软件
调色器调色板程序C++源码
两个C++源码程序,一个是调色器,另一个是调色板
android 调色板小练习
在开发中一个供取色的调色板的小调查,在同学的帮助下 android (android-sdk-windows\samples\android-8\ApiDemos\src\com\example\android\apis\graphics\ColorPickerDialog.java )的源码 中得到点思路,可是最终还是不怎么明白那个取色 设色的过程。有点上高中 大学时数学三角函数的感觉。好多都...
调色版小程序
这是一个简单的三原色生成颜色的小程序,点击button可以让显示在EditText里RGB加一或减一,从而使下方的textView颜色发生改变。 PS:这个我是用eclipse做的。 运行效果截图: 源码: (PaletteActivity.java)package com.example.palette; import android.os.Bundle; import android
为什么我写的程序只能一个人用~
C/S,PB8.0+ MS-SQl-server,两个人用的时候,程序是可以打开,但是在生成报表取数据的时候,rn 如果一个人取数据后一直打开程序,第二个人就不能取数据,处与假死状态,rn 大家看看我在程序里面是不是少写了什么代码rn谢谢
iOS小demo之判断颜色深浅
//用于判断颜色深浅(很久之前在网上找的,忘了链接地址了) -(BOOL)isDarkColor:(UIColor *)newColor{     if ([self alphaForColor: newColor]         return YES;     }     const CGFloat *componentColors = CGColorGe
VC++ 调色板 可以自行调色
利用VC++所写的MFC应用程序,希望和大家一起分享一下啊
美工调色板-美工调色工具
史上最全美工配色资料 美工镇宒级工具 内含各系列颜色对照表 visiBone权威配色图4张(全四张,收费的)
调色板显示,配置颜色的调色板 获取颜色的调色板
就是方便大家获取颜色超级简单!
我写的一个Delphi小程序,为什么
procedure TForm1.Button1Click(Sender: TObject);rnvarrn i,j:integer;rnrnbeginrn edit3.Text :='' ;rn randseed:=10;rn randomize;rn i:=random(10);rn j:=random(10);rn edit1.Text :=inttostr(i);rn edit2.Text :=inttostr(j);rn if (i+j=strtoint(edit3.Text )) thenrn showmessage('你真棒. !');rnrnrnrnend;//编译老是出错,为什么呢、
基于MFC程序的小程序 调色程序
是基于MFC程序设计的小程序,是调色程序,能够调出不同的颜色
VB编写的调色板小程序
可以调色,完全娱乐。
RGB调色板VB小程序
很简单的RGB调色板的VB小程序,附带源代码哦
微信小程序单一柱形图
  这个就是最终的效果图 下面是我的代码,已经尽我所能的写完整了     //首先要引入wx-charts的文件才能使用柱形图 var Charts = require('../utils/wxcharts.js'); // 引入wx-charts.js文件   //因为代码量大我把代码封装在了utils.js中 function drawColumn(canvasid,ar...
调色板程序,手动添加调色板
手动调色板,可以很好的解决调色板问题,值得珍藏,快点下载啊
CSS颜色调色工具
CSS调色: [url]http://meyerweb.com/eric/tools/color-blend/[/url] SASS调试: [url]http://sassmeister.com/[/url]
Flex 颜色处理 深浅变化
一个colorUtil类,用于颜色变化取值,一个小算法,输入深色、浅色、step后,会自动按照step求出一组颜色,深浅变化。
jquery 颜色调色器
jquery 实现的颜色调色器,里面基本上包含了所有的颜色选择器,自己可以应用到自己的项目当中,很多很好的效果,欢迎大家下载,是我这么多年项目经验收藏版。拿出来和大家分享
颜色拾取\调色工具
获取颜色的十六位值,处理界面时 用处很大!
如何判断图片的颜色深浅?????
如题,类似于QQ的换肤功能,判断图片的颜色深浅,设置字体颜色为黑或者白。rn一点思路都没了 !!!!!rn
Android调色板的开发与RGB颜色的使用
项目简介:显示器的颜色是有三原色(RGB)构成的,显示使用中除了这三种参数外还有一个重要的参数:Alpha(透明度)。 项目的界面由图所示! 这就是界面package com.tabchen.rgb;import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import
为什么我的程序只能注入到控制台的程序
。最近研究线程注入。用通用方法写了一个基于控制台的线程注入器。被注入的DLL 实现的是 一个Beep(1000,1000)函数。rn 注入自己进程和一些控制台程序有效果,但是注入其他界面化的程序貌似就不行了。就如IE ,注入时360会有提示,但是到IE进程模块里找不到注入的DLL,DLL也没有被执行。求解~
自己写的android小程序
自己写的android小程序,我自己选择的图标和图片,支持屏幕旋转呀~~~
Android:Paletee颜色提取用法(调色板)
Palette常用于什么场合:通常情况下ViewPager、xxxTabStrip、Fragment三个好基友是一起出现的。当我们的Pager切换时伴随着Fragment的变化,而Fragment里的内容一般是不同的,其视觉效果也是不同的,所以我们可以用Palette来去提取Fragment中的主色调,设置给title或者textView等;总之,它就是用来从Bitmap中提取颜色的,然后把颜色设置
javascript颜色调色板
不知道这东西能不能帮到各位,如能帮到的话就顶一下吧
Seaborn调色板颜色设置
plt.plot([0,1], [0,1], sns.xkcd._rgb["pale red"], lw=3) 结果为: colors = ["windows blue", "amber", "greyish", "faded green", "dusty purple"] sns.palplot(sns.xkcd_palette(colors)) 结果为: sns.pa
4-调色板颜色设置
<p>rn <span> </span> rn</p>rn<p>rn <p>rn 20周年限定:唐宇迪老师一卡通!<span style="color:#337FE5;">可学唐宇迪博士全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn<span>&nbsp;</span>rn</p>rn购买课程后,可扫码进入学习群<span style="font-family:&quot;">,获取唐宇迪老师答疑</span>rn<p>rn <img src="https://img-bss.csdn.net/201908070602101883.jpg" alt="" /> rn</p>rn<p>rn Python数据科学必备工具包视频培训课程:该教程共包含Python数据教程领域四大核心库,科学技术库Numpy,数据分析处理库Pandas,可视化库Matplotlib,可视化库Seaborn。通过学习本教程,可以掌握Numpy矩阵、数组、函数等;Pandas、Matplotlib、Seaborn的用法。rn</p>
android系统的颜色调色板
Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.back); MainActivity.this.getWindow().setBackgroundDrawable(drawable);
混合颜色
SpriteKit是Apple新推出的2D游戏引擎,与Cocos2d-x类似。可以使用Objective-C和Swift语言开发。可开发iOS和Mac OS X下的2D游戏。本课程主要介绍了SpriteKit的常用技术,包括基础知识、action、粒子系统、物理引擎等。
调色板-网页配色-美工配色-调色工具
从大量网上精典资料中提取总结,史上最全美工配色资料,美工镇宒级工具,内含各系列颜色对照表,visiBone权威配色图4张(全四张,收费的),不会有比这个更好的。
修改调色板的默认颜色
我用vc6 编程rn用CColorDialog 弹出一个系统调色板,默认选中的颜色是黑色的,怎么样修改默认的颜色,使之不是黑色?
调用调色板设置颜色
NULL 博文链接:https://jykenan.iteye.com/blog/1169165
Seaborn-调色板颜色设置
<p>rn <span> </span> rn</p>rn<p>rn <p>rn 20周年限定:唐宇迪老师一卡通!<span style="color:#337FE5;">可学唐宇迪博士全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn<span>&nbsp;</span>rn</p>rn购买课程后,可扫码进入学习群<span style="font-family:&quot;">,获取唐宇迪老师答疑</span>rn<p>rn <img src="https://img-bss.csdn.net/201908070603599204.jpg" alt="" /> rn</p>rn<p>rn 系列课程包含Python机器学习库,机器学习经典算法原理推导,基于真实数据集案例实战3大模块。从入门开始进行机器学习原理推导,以通俗易懂为基础形象解读晦涩难懂的机器学习算法工作原理,案例实战中使用Python工具库从数据预处理开始一步步完成整个建模工作!具体内容涉及Python必备机器学习库、线性回归算法原理推导、Python实现逻辑回归与梯度下降、案例实战,信用卡欺诈检测、决策树与集成算法、支持向量机原理推导、SVM实例与贝叶斯算法、机器学习常规套路与Xgboost算法、神经网络。rn</p>
日系柔调调色
日系柔调调色
改变字体的颜色 调色板
点击按钮后,出现调色板。。。选择文本后,选择调色板的颜色,既可以将选择的文本的字体改变。适用于各种浏览器。。。
调色板颜色设置
<p>rn <span> </span> rn</p>rn<p>rn <p>rn 20周年限定:唐宇迪老师一卡通!<span style="color:#337FE5;">可学唐宇迪博士全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank"><span style="color:#337FE5;">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</span></a>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn购买课程后,可扫码进入学习群<span style="font-family:&quot;">,获取唐宇迪老师答疑</span> rn<p>rn <br />rn</p>rn<p>rn <img src="https://img-bss.csdn.net/201908070612459456.jpg" alt="" /> rn</p>rn<p>rn Python数据可视化库Seaborn视频教程,该课程实例演示Python数据可视化库Seaborn,具体包括Seaborn安装、绘制各种数据分析常用图标,并且绘制多种数据分析常用图表,代码详解参数设置与整体布局。rn</p>
为什么我无法改变字体的颜色?
void OnDraw(CDC *pDC) rnrnCPen penBlack; rn penBlack.CreatePen( PS_SOLID, 4, RGB(250,0,0) );rn CPen* pOldPen = pDC->SelectObject( &penBlack );rn rnrn pDC->TextOut (40,10,"LIJIECONG",9);rn pDC->SelectObject( pOldPen );rn
调色取色器支持色卡调色板
此工具是一款适合网页设计师和界面设计以及程序员使用的多用途的颜色采取器,单文件、绿色、小巧。它包含多种功能特性,具有取色器,调色器,不同点阵的采样,抓取为网页安全色,颜色历史记录和一个辅助的调色板。同时 也可以将 RGB 十进制转换为十六进制颜色代码。是一个非常好的帮手,可以很方便的取屏幕上的颜色值。支持补色,反色等, 该软件还自带一些常用的颜色值,以及色卡等。更多功能等你发现哦。
我写的一段小程序
写了短小程序,用来将文件中的汉子提取出来,给同事看了,说我写东西太晦涩,贴出来大家讨论一下:rnrn#include "stdafx.h"rn#include rn#include rn#define sec1 (c=buffer[i])&&(c>0x80&&c<0xA1||c>0xA9&&c<0xFF)rn#define sec2 (c=buffer[i])&&(c>0xA0&&c<0xAA)rnrnvoid Convert2PureChinese(unsigned char* buffer)rnrn unsigned char c;rn for(int i=0;i<(int)strlen((char*)buffer);)rn if(sec1)rn rn printf("%c%c", buffer[i], buffer[i+1]);rn i+=2;rn rn else if(sec2)rn i+=2;rn elsern i++;rnrnrnvoid getFileBuffer(FILE* fp)rnrn if(fp==NULL)rn return;rn fseek(fp, 0L, SEEK_END);rn long len=ftell(fp);rn rewind(fp);rn unsigned char* buffer=(unsigned char*)malloc(len);rn fread(buffer, len, 1, fp);rn fclose(fp);rn Convert2PureChinese(buffer);rn free(buffer);rnrnrnint main(int argc, char* argv[])rnrn getFileBuffer(fopen("test.txt", "r+b"));rn return 0;rn
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符