summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/ui/FramedTextButton.java')
-rw-r--r--src/com/android/gallery3d/filtershow/ui/FramedTextButton.java37
1 files changed, 32 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java b/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java
index 17453d070..c717b6e61 100644
--- a/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java
+++ b/src/com/android/gallery3d/filtershow/ui/FramedTextButton.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
+import android.graphics.Path;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.ImageButton;
@@ -32,6 +33,10 @@ public class FramedTextButton extends ImageButton {
private static int mTextSize = 24;
private static int mTextPadding = 20;
private static Paint gPaint = new Paint();
+ private static Path gPath = new Path();
+ private static int mTrianglePadding = 2;
+ private static int mTriangleSize = 30;
+
private Context mContext = null;
public static void setTextSize(int value) {
@@ -42,6 +47,14 @@ public class FramedTextButton extends ImageButton {
mTextPadding = value;
}
+ public static void setTrianglePadding(int value) {
+ mTrianglePadding = value;
+ }
+
+ public static void setTriangleSize(int value) {
+ mTriangleSize = value;
+ }
+
public void setText(String text) {
mText = text;
invalidate();
@@ -84,11 +97,25 @@ public class FramedTextButton extends ImageButton {
@Override
public void onDraw(Canvas canvas) {
- gPaint.setARGB(255, 255, 255, 255);
+ gPaint.setARGB(96, 255, 255, 255);
gPaint.setStrokeWidth(2);
gPaint.setStyle(Paint.Style.STROKE);
- canvas.drawRect(mTextPadding, mTextPadding, getWidth() - mTextPadding,
- getHeight() - mTextPadding, gPaint);
+ int w = getWidth();
+ int h = getHeight();
+ canvas.drawRect(mTextPadding, mTextPadding, w - mTextPadding,
+ h - mTextPadding, gPaint);
+ gPath.reset();
+ gPath.moveTo(w - mTextPadding - mTrianglePadding - mTriangleSize,
+ h - mTextPadding - mTrianglePadding);
+ gPath.lineTo(w - mTextPadding - mTrianglePadding,
+ h - mTextPadding - mTrianglePadding - mTriangleSize);
+ gPath.lineTo(w - mTextPadding - mTrianglePadding,
+ h - mTextPadding - mTrianglePadding);
+ gPath.close();
+ gPaint.setARGB(128, 255, 255, 255);
+ gPaint.setStrokeWidth(1);
+ gPaint.setStyle(Paint.Style.FILL_AND_STROKE);
+ canvas.drawPath(gPath, gPaint);
if (mText != null) {
gPaint.reset();
gPaint.setARGB(255, 255, 255, 255);
@@ -96,8 +123,8 @@ public class FramedTextButton extends ImageButton {
float textWidth = gPaint.measureText(mText);
Rect bounds = new Rect();
gPaint.getTextBounds(mText, 0, mText.length(), bounds);
- int x = (int) ((getWidth() - textWidth) / 2);
- int y = (getHeight() + bounds.height()) / 2;
+ int x = (int) ((w - textWidth) / 2);
+ int y = (h + bounds.height()) / 2;
canvas.drawText(mText, x, y, gPaint);
}