summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/HolographicOutlineHelper.java
diff options
context:
space:
mode:
authorPatrick Dubroy <dubroy@google.com>2010-10-14 13:21:48 -0700
committerPatrick Dubroy <dubroy@google.com>2010-10-20 14:37:49 -0700
commit8e58e916061cbe2623697efac0924f2aa3753a92 (patch)
treea0350aadf47041a62cf81aa1230a3a6769b6bb97 /src/com/android/launcher2/HolographicOutlineHelper.java
parentce34a9768b01115def95f000a6a8f35870f10d3a (diff)
downloadandroid_packages_apps_Trebuchet-8e58e916061cbe2623697efac0924f2aa3753a92.tar.gz
android_packages_apps_Trebuchet-8e58e916061cbe2623697efac0924f2aa3753a92.tar.bz2
android_packages_apps_Trebuchet-8e58e916061cbe2623697efac0924f2aa3753a92.zip
Various cleanups in the drag viz code.
Most importantly: - Don't allocate a new Paint object in CellLayout.onDraw - Scale holographic outlines based on the screen density
Diffstat (limited to 'src/com/android/launcher2/HolographicOutlineHelper.java')
-rw-r--r--src/com/android/launcher2/HolographicOutlineHelper.java37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/com/android/launcher2/HolographicOutlineHelper.java b/src/com/android/launcher2/HolographicOutlineHelper.java
index ea4b01a4c..bca3f715e 100644
--- a/src/com/android/launcher2/HolographicOutlineHelper.java
+++ b/src/com/android/launcher2/HolographicOutlineHelper.java
@@ -23,7 +23,6 @@ import android.graphics.MaskFilter;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
import android.graphics.TableMaskFilter;
public class HolographicOutlineHelper {
@@ -31,19 +30,24 @@ public class HolographicOutlineHelper {
private final Paint mBlurPaint = new Paint();
private final Paint mErasePaint = new Paint();
- private static final BlurMaskFilter sLargeGlowBlurMaskFilter = new BlurMaskFilter(
- 10.0f, BlurMaskFilter.Blur.OUTER);
- private static final BlurMaskFilter sThickOuterBlurMaskFilter = new BlurMaskFilter(
- 6.0f, BlurMaskFilter.Blur.OUTER);
- private static final BlurMaskFilter sMediumOuterBlurMaskFilter = new BlurMaskFilter(
- 2.0f, BlurMaskFilter.Blur.OUTER);
- private static final BlurMaskFilter sThinOuterBlurMaskFilter = new BlurMaskFilter(
- 1.0f, BlurMaskFilter.Blur.OUTER);
+ public static final int OUTER_BLUR_RADIUS;
- private static final BlurMaskFilter sThickInnerBlurMaskFilter = new BlurMaskFilter(
- 4.0f, BlurMaskFilter.Blur.NORMAL);
- private static final BlurMaskFilter sThinInnerBlurMaskFilter = new BlurMaskFilter(
- 1.0f, BlurMaskFilter.Blur.INNER);
+ private static final BlurMaskFilter sThickOuterBlurMaskFilter;
+ private static final BlurMaskFilter sMediumOuterBlurMaskFilter;
+ private static final BlurMaskFilter sThinOuterBlurMaskFilter;
+ private static final BlurMaskFilter sThickInnerBlurMaskFilter;
+
+ static {
+ final float scale = LauncherApplication.getScreenDensity();
+
+ OUTER_BLUR_RADIUS = (int) (scale * 6.0f);
+
+ sThickOuterBlurMaskFilter = new BlurMaskFilter(OUTER_BLUR_RADIUS,
+ BlurMaskFilter.Blur.OUTER);
+ sMediumOuterBlurMaskFilter = new BlurMaskFilter(scale * 2.0f, BlurMaskFilter.Blur.OUTER);
+ sThinOuterBlurMaskFilter = new BlurMaskFilter(scale * 1.0f, BlurMaskFilter.Blur.OUTER);
+ sThickInnerBlurMaskFilter = new BlurMaskFilter(scale * 4.0f, BlurMaskFilter.Blur.NORMAL);
+ }
private static final MaskFilter sFineClipTable = TableMaskFilter.CreateClipTable(0, 20);
private static final MaskFilter sCoarseClipTable = TableMaskFilter.CreateClipTable(0, 200);
@@ -81,7 +85,12 @@ public class HolographicOutlineHelper {
}
}
- void applyGlow(Bitmap bitmap, Canvas canvas, int color) {
+ /**
+ * Apply an outer blur to the given bitmap.
+ * You should use OUTER_BLUR_RADIUS to ensure that the bitmap is big enough to draw
+ * the blur without clipping.
+ */
+ void applyOuterBlur(Bitmap bitmap, Canvas canvas, int color) {
mBlurPaint.setMaskFilter(sThickOuterBlurMaskFilter);
Bitmap glow = bitmap.extractAlpha(mBlurPaint, mTempOffset);