diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow')
3 files changed, 141 insertions, 27 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java index 2a660d40f..da38d3b7e 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java @@ -1,36 +1,33 @@ package com.android.gallery3d.filtershow.imageshow; -import com.android.gallery3d.filtershow.FilterShowActivity; -import com.android.gallery3d.filtershow.HistoryAdapter; -import com.android.gallery3d.filtershow.ImageStateAdapter; -import com.android.gallery3d.filtershow.cache.ImageLoader; -import com.android.gallery3d.filtershow.filters.ImageFilter; -import com.android.gallery3d.filtershow.presets.ImagePreset; -import com.android.gallery3d.filtershow.ui.SliderListener; -import com.android.gallery3d.filtershow.ui.SliderController; -import com.android.gallery3d.R; -import com.android.gallery3d.R.id; -import com.android.gallery3d.R.layout; - -import java.io.File; - import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Rect; -import android.net.Uri; import android.os.Handler; -import android.os.Message; import android.util.AttributeSet; -import android.util.Log; import android.view.MotionEvent; import android.view.View; -import android.view.View.MeasureSpec; import android.widget.ArrayAdapter; +import android.widget.SeekBar; +import android.widget.SeekBar.OnSeekBarChangeListener; -public class ImageShow extends View implements SliderListener { +import com.android.gallery3d.R; +import com.android.gallery3d.filtershow.FilterShowActivity; +import com.android.gallery3d.filtershow.HistoryAdapter; +import com.android.gallery3d.filtershow.ImageStateAdapter; +import com.android.gallery3d.filtershow.PanelController; +import com.android.gallery3d.filtershow.cache.ImageLoader; +import com.android.gallery3d.filtershow.filters.ImageFilter; +import com.android.gallery3d.filtershow.presets.ImagePreset; +import com.android.gallery3d.filtershow.ui.SliderController; +import com.android.gallery3d.filtershow.ui.SliderListener; + +import java.io.File; + +public class ImageShow extends View implements SliderListener, OnSeekBarChangeListener { private static final String LOGTAG = "ImageShow"; @@ -64,8 +61,47 @@ public class ImageShow extends View implements SliderListener { protected float mTouchX = 0; protected float mTouchY = 0; - private Handler mHandler = new Handler(); + private SeekBar mSeekBar = null; + private PanelController mController = null; + + private final Handler mHandler = new Handler(); + + public void select() { + if (getCurrentFilter() != null) { + int parameter = getCurrentFilter().getParameter(); + updateSeekBar(parameter); + } + } + public void updateSeekBar(int parameter) { + if (mSeekBar == null) { + return; + } + int progress = parameter + 100; + mSeekBar.setProgress(progress); + if (getPanelController() != null) { + getPanelController().onNewValue(parameter); + } + } + + public void unselect() { + + } + + public void resetParameter() { + onNewValue(0); + mSliderController.reset(); + } + + public void setPanelController(PanelController controller) { + mController = controller; + } + + public PanelController getPanelController() { + return mController; + } + + @Override public void onNewValue(int value) { if (getCurrentFilter() != null) { getCurrentFilter().setParameter(value); @@ -74,15 +110,21 @@ public class ImageShow extends View implements SliderListener { mImageLoader.resetImageForPreset(getImagePreset(), this); getImagePreset().fillImageStateAdapter(mImageStateAdapter); } + if (getPanelController() != null) { + getPanelController().onNewValue(value); + } + updateSeekBar(value); invalidate(); } + @Override public void onTouchDown(float x, float y) { mTouchX = x; mTouchY = y; invalidate(); } + @Override public void onTouchUp() { } @@ -102,6 +144,7 @@ public class ImageShow extends View implements SliderListener { R.id.rowTextView); } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int parentWidth = MeasureSpec.getSize(widthMeasureSpec); int parentHeight = MeasureSpec.getSize(heightMeasureSpec); @@ -110,6 +153,11 @@ public class ImageShow extends View implements SliderListener { mSliderController.setHeight(parentHeight); } + public void setSeekBar(SeekBar seekBar) { + mSeekBar = seekBar; + mSeekBar.setOnSeekBarChangeListener(this); + } + public void setCurrentFilter(ImageFilter filter) { mCurrentFilter = filter; } @@ -180,6 +228,7 @@ public class ImageShow extends View implements SliderListener { } } + @Override public void onDraw(Canvas canvas) { drawBackground(canvas); getFilteredImage(); @@ -262,8 +311,18 @@ public class ImageShow extends View implements SliderListener { } } - public void setShowControls(boolean value) { + public ImageShow setShowControls(boolean value) { mShowControls = value; + if (mShowControls) { + if (mSeekBar != null) { + mSeekBar.setVisibility(View.VISIBLE); + } + } else { + if (mSeekBar != null) { + mSeekBar.setVisibility(View.INVISIBLE); + } + } + return this; } public boolean showControls() { @@ -324,6 +383,7 @@ public class ImageShow extends View implements SliderListener { mImageLoader.saveImage(getImagePreset(), filterShowActivity, file); } + @Override public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event); mSliderController.onTouchEvent(event); @@ -368,4 +428,21 @@ public class ImageShow extends View implements SliderListener { mImageRotation = imageRotation; mImageRotationZoomFactor = imageRotationZoomFactor; } + + @Override + public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) { + onNewValue(progress - 100); + } + + @Override + public void onStartTrackingTouch(SeekBar arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void onStopTrackingTouch(SeekBar arg0) { + // TODO Auto-generated method stub + + } } diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java index debaec708..4fdf8303a 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java @@ -4,6 +4,7 @@ import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; +import com.android.gallery3d.filtershow.PanelController; import com.android.gallery3d.filtershow.filters.ImageFilter; import com.android.gallery3d.filtershow.presets.ImagePreset; @@ -26,18 +27,22 @@ public class ImageSlave extends ImageShow { mMasterImageShow = master; } + @Override public ImagePreset getImagePreset() { return mMasterImageShow.getImagePreset(); } + @Override public void setImagePreset(ImagePreset preset, boolean addToHistory) { mMasterImageShow.setImagePreset(preset, addToHistory); } + @Override public void setCurrentFilter(ImageFilter filter) { mMasterImageShow.setCurrentFilter(filter); } + @Override public ImageFilter getCurrentFilter() { return mMasterImageShow.getCurrentFilter(); } @@ -46,20 +51,35 @@ public class ImageSlave extends ImageShow { mMasterImageShow.setImageRotation(mImageRotation, mImageRotationZoomFactor); } + @Override public boolean showTitle() { return false; } + @Override public float getImageRotation() { return mMasterImageShow.getImageRotation(); } + @Override public float getImageRotationZoomFactor() { return mMasterImageShow.getImageRotationZoomFactor(); } + @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); } + @Override + public void setPanelController(PanelController controller) { + mMasterImageShow.setPanelController(controller); + } + + @Override + public PanelController getPanelController() { + return mMasterImageShow.getPanelController(); + } + + } diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java index eb034bf10..99aa389ac 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageStraighten.java @@ -1,26 +1,24 @@ package com.android.gallery3d.filtershow.imageshow; -import com.android.gallery3d.filtershow.presets.ImagePreset; - import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Path; -import android.graphics.Rect; import android.graphics.RectF; import android.util.AttributeSet; -import android.util.Log; import android.view.MotionEvent; +import com.android.gallery3d.filtershow.presets.ImagePreset; + public class ImageStraighten extends ImageSlave { private float mImageRotation = 0; private float mImageRotationZoomFactor = 0; - private float mMinAngle = -45; - private float mMaxAngle = 45; + private final float mMinAngle = -45; + private final float mMaxAngle = 45; private float mBaseAngle = 0; private float mAngle = 0; private float mCenterX; @@ -69,6 +67,7 @@ public class ImageStraighten extends ImageSlave { public void setActionUp() { mMode = MODES.UP; updatePreset(); + invalidate(); } public void setNoAction() { @@ -81,6 +80,16 @@ public class ImageStraighten extends ImageSlave { setImagePreset(copy); } + @Override + public void resetParameter() { + super.resetParameter(); + mImageRotation = 0; + mAngle = 0; + updatePreset(); + invalidate(); + } + + @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getActionMasked()) { case (MotionEvent.ACTION_DOWN): @@ -97,6 +106,9 @@ public class ImageStraighten extends ImageSlave { } mImageRotation = mAngle; updateAngle(); + if (getPanelController() != null) { + getPanelController().onNewValue((int) mImageRotation); + } invalidate(); return true; } @@ -124,11 +136,16 @@ public class ImageStraighten extends ImageSlave { // /////////////////////////////////////////////////////////////////////////// + @Override public void onNewValue(int value) { mImageRotation = value; + if (getPanelController() != null) { + getPanelController().onNewValue(value); + } invalidate(); } + @Override public void onDraw(Canvas canvas) { mCenterX = getWidth() / 2; mCenterY = getHeight() / 2; |