Android 仿美图秀秀颜色混合
来源:互联网 发布:施华蔻黑胶和银胶 知乎 编辑:程序博客网 时间:2024/06/08 04:05
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="青----------------红" /> <SeekBar android:id="@+id/skb_red" android:progress="50" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="紫----------------绿" /> <SeekBar android:id="@+id/skb_green" android:progress="50" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="黄----------------蓝" /> <SeekBar android:id="@+id/skb_blue" android:progress="50" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
public class MainActivity extends Activity implements OnSeekBarChangeListener { private ImageView iv; private SeekBar skbRed; private SeekBar skbGreen; private SeekBar skbBlue; private float redPerent = 1; private float greenPerent = 1; private float bluePerent = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); skbRed = (SeekBar) findViewById(R.id.skb_red); skbGreen = (SeekBar) findViewById(R.id.skb_green); skbBlue = (SeekBar) findViewById(R.id.skb_blue); skbRed.setOnSeekBarChangeListener(this); skbGreen.setOnSeekBarChangeListener(this); skbBlue.setOnSeekBarChangeListener(this); // 给iv加载图片 Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/img_small_1.jpg"); iv.setImageBitmap(bitmap); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // 释放的时候 int progress = seekBar.getProgress();// 0-100 float perent = progress / 50f; Bitmap srcBitmap = BitmapFactory .decodeFile("/mnt/sdcard/img_small_1.jpg"); // 1. 创建拷贝 Bitmap copyBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig()); // 2. 将拷贝挂载到画布上 Canvas canvas = new Canvas(copyBitmap); // 3. 需要画笔 Paint paint = new Paint(); if (seekBar == skbRed) { redPerent = perent; } else if (seekBar == skbGreen) { greenPerent = perent; } else if (seekBar == skbBlue) { bluePerent = perent; } ColorMatrix cm = new ColorMatrix(); cm.set(new float[] { 1 * redPerent, 0, 0, 0, 0,// R-->红色-->(0-2) 0, 1 * greenPerent, 0, 0, 0,// G-->绿色 0, 0, 1 * bluePerent, 0, 0,// B-->蓝色 0, 0, 0, 1, 0 // A -->透明度 }); ColorMatrixColorFilter filter = new ColorMatrixColorFilter(cm); paint.setColorFilter(filter);// 颜色过滤器 // 4. 对图像进行处理的参数配置 Matrix matrix = new Matrix(); // 5. 将原始图片按照自己的配置方式画到画布上 canvas.drawBitmap(srcBitmap, matrix, paint); iv.setImageBitmap(copyBitmap); }}
参考:Android图片处理
阅读全文
0 0
- Android 仿美图秀秀颜色混合
- 颜色混合
- 自定义View基础:Android中的颜色和颜色混合
- 颜色混合opengl
- 颜色混合opengl
- 颜色混合opengl
- 颜色混合opengl
- 颜色混合opengl
- glBlendFunc颜色混合
- 关于颜色混合
- BlendFunc颜色混合
- OpenGL颜色混合
- 颜色混合opengl
- OpenGL: 颜色混合
- 颜色混合opengl
- 颜色混合OpenGL
- glBlendFunc颜色混合
- opengl颜色混合
- 架构师需要直面的几个问题
- [UVA10003] 切木棍(dp)
- hdu5696-分治-暴力剪枝-rmq-dfs-单调栈-区间的价值
- eclipse 中修改提示框(alt+/)背景色或文字颜色
- 入职两周心得体会
- Android 仿美图秀秀颜色混合
- 建造者模式
- 创建爬虫----遍历单个域名爬取赶集网
- h5学习笔记:标签页 after
- mciSendString的介绍
- Mysql技术内幕InnoDB存储引擎读书笔记--《四》表
- anaconda 安装talib
- JOZJ5185. 【NOIP2017提高组模拟6.30】tty's sequence
- HQL查询