summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2013-02-01 16:22:50 -0800
committerJohn Hoford <hoford@google.com>2013-02-01 16:22:50 -0800
commit88e34ef6e25ec2ee63b0400accb9f500bf88dc96 (patch)
tree0140ab9475b82ee539751f5cc1c84b995e89e693 /src
parentefc561262664cbb9aaf2c4e39a74597329ae77de (diff)
downloadandroid_packages_apps_Snap-88e34ef6e25ec2ee63b0400accb9f500bf88dc96.tar.gz
android_packages_apps_Snap-88e34ef6e25ec2ee63b0400accb9f500bf88dc96.tar.bz2
android_packages_apps_Snap-88e34ef6e25ec2ee63b0400accb9f500bf88dc96.zip
fix performance problem with large images in draw
Change-Id: I9fa5a90e58273c6dd6e80d7d0bf07c3371a6f10e
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java17
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java10
2 files changed, 13 insertions, 14 deletions
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java
index d773b6b77..2bff501f7 100644
--- a/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java
@@ -47,7 +47,7 @@ public class ColorOpacityView extends View implements ColorListener {
private Paint mDotPaint;
private int mBgcolor = 0;
- private float mDotRadus;
+ private float mDotRadius;
private float mBorder;
private float[] mHSVO = new float[4];
@@ -61,7 +61,7 @@ public class ColorOpacityView extends View implements ColorListener {
super(ctx, attrs);
DisplayMetrics metrics = ctx.getResources().getDisplayMetrics();
float mDpToPix = metrics.density;
- mDotRadus = DOT_SIZE * mDpToPix;
+ mDotRadius = DOT_SIZE * mDpToPix;
mBorder = BORDER_SIZE * mDpToPix;
mBarPaint1 = new Paint();
@@ -115,10 +115,11 @@ public class ColorOpacityView extends View implements ColorListener {
mHSVO[3] = (mDotX - mBorder) / (mWidth - mBorder * 2);
notifyColorListeners(mHSVO);
setupButton();
- invalidate((int) (ox - mDotRadus), (int) (oy - mDotRadus), (int) (ox + mDotRadus),
- (int) (oy + mDotRadus));
- invalidate((int) (mDotX - mDotRadus), (int) (mDotY - mDotRadus), (int) (mDotX + mDotRadus),
- (int) (mDotY + mDotRadus));
+ invalidate((int) (ox - mDotRadius), (int) (oy - mDotRadius), (int) (ox + mDotRadius),
+ (int) (oy + mDotRadius));
+ invalidate(
+ (int) (mDotX - mDotRadius), (int) (mDotY - mDotRadius), (int) (mDotX + mDotRadius),
+ (int) (mDotY + mDotRadius));
return true;
}
@@ -129,7 +130,7 @@ public class ColorOpacityView extends View implements ColorListener {
int[] colors3 = new int[] {
mSliderColor, mSliderColor, 0x66000000, 0 };
- RadialGradient g = new RadialGradient(mDotX, mDotY, mDotRadus, colors3, new float[] {
+ RadialGradient g = new RadialGradient(mDotX, mDotY, mDotRadius, colors3, new float[] {
0, .3f, .31f, 1 }, Shader.TileMode.CLAMP);
mDotPaint.setShader(g);
}
@@ -163,7 +164,7 @@ public class ColorOpacityView extends View implements ColorListener {
canvas.drawLine(mDotX, mDotY, mWidth - mBorder, mDotY, mLinePaint1);
canvas.drawLine(mBorder, mDotY, mDotX, mDotY, mLinePaint2);
if (mDotX != Float.NaN) {
- canvas.drawCircle(mDotX, mDotY, mDotRadus, mDotPaint);
+ canvas.drawCircle(mDotX, mDotY, mDotRadius, mDotPaint);
}
}
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java
index fac9e99a9..3177d2473 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterDraw.java
@@ -24,7 +24,6 @@ import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.PathMeasure;
-import android.util.Log;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.editors.EditorDraw;
@@ -280,14 +279,13 @@ public class ImageFilterDraw extends ImageFilter {
return;
}
Paint paint = new Paint();
-
- canvas.save();
- canvas.concat(toScrMatrix);
paint.setStyle(Style.STROKE);
float scale = toScrMatrix.mapRadius(1);
- draw(canvas, paint, mCurrentColor, mCurrentRadius, path);
- canvas.restore();
+ Path mCacheTransPath = new Path();
+ mCacheTransPath.addPath(path, toScrMatrix);
+ draw(canvas, paint, mCurrentColor, toScrMatrix.mapRadius(mCurrentRadius),
+ mCacheTransPath);
}
@Override