package me.xiaopan.sketchsample.fragment; import android.graphics.Color; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.widget.SeekBar; import android.widget.TextView; import me.xiaopan.androidinjector.InjectContentView; import me.xiaopan.androidinjector.InjectView; import me.xiaopan.sketch.display.TransitionImageDisplayer; import me.xiaopan.sketch.process.MaskImageProcessor; import me.xiaopan.sketchsample.AssetImage; import me.xiaopan.sketchsample.MyFragment; import me.xiaopan.sketchsample.R; import me.xiaopan.sketchsample.widget.MyImageView; @InjectContentView(R.layout.fragment_mask) public class MaskImageProcessorTestFragment extends MyFragment { @InjectView(R.id.image_maskFragment) MyImageView imageView; @InjectView(R.id.seekBar_maskFragment) SeekBar seekBar; @InjectView(R.id.text_maskFragment) TextView progressTextView; private int progress = 15; @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // 缩小图片,处理速度更快,更少的内存消耗 DisplayMetrics metrics = getResources().getDisplayMetrics(); imageView.getOptions().setMaxSize(metrics.widthPixels / 2, metrics.heightPixels / 2); imageView.getOptions().setImageDisplayer(new TransitionImageDisplayer()); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { progressTextView.setText(String.format("%d/%d", seekBar.getProgress(), seekBar.getMax())); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { progress = seekBar.getProgress(); apply(); } }); seekBar.setMax(100); seekBar.setProgress(progress); apply(); } private void apply() { int alpha = (int) (((float) progress / 100) * 255); int maskColor = Color.argb(alpha, 0, 0, 0); imageView.getOptions().setImageProcessor(new MaskImageProcessor(maskColor)); imageView.displayImage(AssetImage.MASK); } }