-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTextDrawable.java
76 lines (58 loc) · 2.04 KB
/
TextDrawable.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.widget.ImageView;
import static java.security.AccessController.getContext;
public class TextDrawable extends Drawable {
private String text;
private Paint paint;
Context context;
Bitmap mBackground = null;
int mDrawable;
public TextDrawable(String text, Context context, int mDrawable) {
this.text = text;
this.paint = new Paint();
paint.setColor(Color.WHITE);
paint.setTextSize(30f);
paint.setAntiAlias(true);
paint.setFakeBoldText(true);
paint.setShadowLayer(6f, 0, 0, Color.BLACK);
paint.setStyle(Paint.Style.FILL);
paint.setTextAlign(Paint.Align.LEFT);
this.context = context;
this.mDrawable = mDrawable;
mBackground = BitmapFactory.decodeResource(context.getResources(),
mDrawable);
}
@Override
public void draw(Canvas canvas) {
canvas.drawText(text, -10,100, paint);
//canvas.drawBitmap(mBackground,0,0,paint);
Drawable drawable = context.getDrawable(mDrawable);
Bitmap icon = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas1 = new Canvas(icon);
drawable.setBounds(0, 0, canvas1.getWidth(), canvas1.getHeight());
drawable.draw(canvas1);
canvas.drawBitmap(icon,0,0,paint);
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter cf) {
paint.setColorFilter(cf);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}