栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android  图片的颜色处理实例代码

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android  图片的颜色处理实例代码

仿造美图秀秀移动鼠标调整seekbar,调整图片的颜色

项目布局如下:



  

  

  

  



效果如下:

逻辑部分代码如下:

package com.wuyudong.resize;

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

public class MainActivity extends Activity {

  private ImageView iv1;
  private SeekBar sb1, sb2, sb3;
  
  private Bitmap alterBitmap;
  private Canvas canvas;
  private Paint paint;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    iv1 = (ImageView) findViewById(R.id.iv);

    // 设置第一个bitmap的图标
    final Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(),
 R.drawable.ic_launcher);

    // 新建一个bitmap
    alterBitmap = Bitmap.createBitmap(bitmap1.getWidth(),
 bitmap1.getHeight(), bitmap1.getConfig());

    // 以alterBitmap为模板新建画布
    canvas = new Canvas(alterBitmap);
    // 新建画笔并设置属性
    paint = new Paint();
    paint.setColor(Color.BLACK);

    // 新建矩阵
    final Matrix matrix = new Matrix();

    // 指定颜色矩阵
    final ColorMatrix cm = new ColorMatrix();
    
    
    paint.setColorFilter(new ColorMatrixColorFilter(cm));

    paint.setAntiAlias(true);

    // 设置画布
    canvas.drawBitmap(bitmap1, matrix, paint);
    iv1.setImageBitmap(alterBitmap);

    sb1 = (SeekBar) findViewById(R.id.sb1);
    sb2 = (SeekBar) findViewById(R.id.sb2);
    sb3 = (SeekBar) findViewById(R.id.sb3);

    sb1.setonSeekBarChangeListener(new onSeekBarChangeListener() {

      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
 int progress = seekBar.getProgress();
 cm.set(new float[]{
     progress/128.0f, 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(bitmap1, matrix, paint);
 iv1.setImageBitmap(alterBitmap);
      }

      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {

      }

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

      }
    });
    sb2.setonSeekBarChangeListener(new onSeekBarChangeListener() {

      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
 int progress = seekBar.getProgress();
 cm.set(new float[]{
     progress/128.0f, 0, 0, 0, 0,
     0, 1, 0, 0, 0,
     0, 0, progress/128.0f, 0, 0,
     0, 0, 0, 1, 0,
 });
 paint.setColorFilter(new ColorMatrixColorFilter(cm));
 canvas.drawBitmap(bitmap1, matrix, paint);
 iv1.setImageBitmap(alterBitmap);
      }

      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {

      }

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

      }
    });
    sb3.setonSeekBarChangeListener(new onSeekBarChangeListener() {

      @Override
      public void onStopTrackingTouch(SeekBar seekBar) {
 int progress = seekBar.getProgress();
 cm.set(new float[]{
     1, 0, 0, 0, 0,
     0, 1, 0, 0, 0,
     0, 0, progress/128.0f, 0, 0,
     0, 0, 0, 1, 0,
 });
 paint.setColorFilter(new ColorMatrixColorFilter(cm));
 canvas.drawBitmap(bitmap1, matrix, paint);
 iv1.setImageBitmap(alterBitmap);
      }

      @Override
      public void onStartTrackingTouch(SeekBar seekBar) {

      }

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

      }
    });
  }

}

运行效果:

出处:http://www.cnblogs.com/wuyudong/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/161443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号