package me.xiaopan.sketchsample.fragment;
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.GaussianBlurImageProcessor;
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_gaussian_blur)
public class GaussianBlurImageProcessorTestFragment extends MyFragment {
@InjectView(R.id.image_gaussianBlurFragment)
MyImageView imageView;
@InjectView(R.id.seekBar_gaussianBlurFragment)
SeekBar seekBar;
@InjectView(R.id.text_gaussianBlurFragment)
TextView progressTextView;
private int progress = 15;
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// 通过maxSize限制缩小读到内存的图片的尺寸,尺寸越小高斯模糊越快
DisplayMetrics metrics = getResources().getDisplayMetrics();
imageView.getOptions().setMaxSize(metrics.widthPixels / 4, metrics.heightPixels / 4);
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() {
imageView.getOptions().setImageProcessor(GaussianBlurImageProcessor.makeRadius(progress));
imageView.displayImage(AssetImage.MEI_NV);
}
}