package me.xiaopan.sketchsample.fragment; import android.graphics.Color; import android.os.Bundle; 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.shaper.RoundRectImageShaper; 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_round_rect_image_shaper) public class RoundRectImageShaperTestFragment extends MyFragment { @InjectView(R.id.image_roundRectImageShaperFragment) MyImageView imageView; @InjectView(R.id.seekBar_roundRectImageShaperFragment_radius) SeekBar radiusSeekBar; @InjectView(R.id.text_roundRectImageShaperFragment_radius) TextView radiusProgressTextView; @InjectView(R.id.seekBar_roundRectImageShaperFragment_stroke) SeekBar strokeSeekBar; @InjectView(R.id.text_roundRectImageShaperFragment_stroke) TextView strokeProgressTextView; private int radiusProgress = 20; private int strokeProgress = 5; @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); imageView.getOptions().setImageDisplayer(new TransitionImageDisplayer()); radiusSeekBar.setMax(100); radiusSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { radiusProgressTextView.setText(String.format("%d/%d", progress, 100)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { radiusProgress = radiusSeekBar.getProgress(); apply(); } }); radiusSeekBar.setProgress(radiusProgress); strokeSeekBar.setMax(100); strokeSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { strokeProgressTextView.setText(String.format("%d/%d", progress, 100)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { strokeProgress = strokeSeekBar.getProgress(); apply(); } }); strokeSeekBar.setProgress(strokeProgress); apply(); } private void apply() { RoundRectImageShaper imageShaper = new RoundRectImageShaper(radiusProgress).setStroke(Color.WHITE, strokeProgress); imageView.getOptions().setImageShaper(imageShaper); imageView.displayImage(AssetImage.SAMPLE_JPG); } }