基本信息
源码名称:Android studio中使用三种方法设置图片的过滤效果
源码大小:7.84M
文件格式:.rar
开发语言:Java
更新时间:2020-07-14
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 5 元 
   源码介绍

在Android Studio中使用图像处理之颜色矩阵ColorMatrix算法实现Android手机中图片的滤镜效果。


import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.ImageView; import android.widget.SeekBar; /**

 * Created by Administrator on 2020/3/17.

 */ public class PrimaryColor extends Activity implements SeekBar.OnSeekBarChangeListener {

    private ImageView image;

    private SeekBar seek_rorate, seek_saturation, seek_sacle;

    private final int MAX_VALUE = 255;

    private final int MID_VALUE = 127;

    private Bitmap bitmap;

    private float rorate, saturation, sacle;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.primary_color_activity);

        initView();

        initData();

    }

    private void initData() {

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

        image.setImageBitmap(bitmap);

        seek_rorate.setMax(MAX_VALUE);

        seek_rorate.setProgress(MID_VALUE);

        seek_saturation.setMax(MAX_VALUE);

        seek_saturation.setProgress(MID_VALUE);

        seek_sacle.setMax(MAX_VALUE);

        seek_sacle.setProgress(MID_VALUE);

        //===

        seek_rorate.setOnSeekBarChangeListener(this);

        seek_saturation.setOnSeekBarChangeListener(this);

        seek_sacle.setOnSeekBarChangeListener(this);

    }

    private void initView() {

        image = (ImageView) findViewById(R.id.image);

        //色相         seek_rorate = (SeekBar) findViewById(R.id.seek_rorate);

        //透明度         seek_saturation = (SeekBar) findViewById(R.id.seek_saturation);

        //亮度         seek_sacle = (SeekBar) findViewById(R.id.seek_sacle);

    }

    @Override

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

        switch (seekBar.getId()) {

            case R.id.seek_rorate://色相                 rorate = ((progress - MID_VALUE) * 1.0f / MID_VALUE * 180);

                break;

            case R.id.seek_sacle://亮度                 sacle = progress * 1.0f / MID_VALUE;

                break;

            case R.id.seek_saturation://透明度                 saturation = progress * 1.0f / MID_VALUE;

                break;

        }

        image.setImageBitmap(ImageHelper.handleImageEffect(bitmap, rorate, saturation, sacle));

    }

    @Override

    public void onStartTrackingTouch(SeekBar seekBar) { }

    @Override

    public void onStopTrackingTouch(SeekBar seekBar) { }

}