package info.guardianproject.iocipher.player; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Typeface; import android.util.Log; public class OverlayHandler { public final static int POSITION_UPPER_LEFT = 9; public final static int POSITION_UPPER_RIGHT = 3; public final static int POSITION_LOWER_LEFT = 12; public final static int POSITION_LOWER_RIGHT = 6; private Canvas canvas; private Paint paint; private Paint overlayPaint; private int overlayTextColor; private int overlayBackgroundColor; private int ovlPos; private int ovltop = 5; public OverlayHandler(Canvas c, Paint p) { this.canvas = c; this.paint = p; overlayPaint = new Paint(); overlayPaint.setTextAlign(Paint.Align.LEFT); overlayPaint.setTextSize(12); overlayPaint.setTypeface(Typeface.DEFAULT); overlayTextColor = Color.WHITE; overlayBackgroundColor = Color.BLACK; ovlPos = POSITION_UPPER_RIGHT; } public Bitmap makeOverlay(String text) { Rect b = new Rect(); paint.getTextBounds(text, 0, text.length(), b); int bwidth = b.width()+2; int bheight = b.height()+2; Bitmap bm = Bitmap.createBitmap(bwidth, bheight, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bm); paint.setColor(overlayBackgroundColor); c.drawRect(0, 0, bwidth, bheight, paint); paint.setColor(overlayTextColor); c.drawText(text, -b.left+1, (bheight/2)-((paint.ascent()+paint.descent())/2)+1, paint); return bm; } public void drawOverlay(Bitmap overlay) { if (overlay == null) { Log.v("OverlayHandler", "NONONO the overlay is null"); } canvas.drawBitmap(overlay, 5, ovltop, paint); ovltop += 5 + overlay.getHeight(); } public int getOvltop() { return ovltop; } public void setOvltop(int ovltop) { this.ovltop = ovltop; } public void setOverlayPaint(Paint p) { overlayPaint = p; } public void setOverlayTextColor(int c) { overlayTextColor = c; } public void setOverlayBackgroundColor(int c) { overlayBackgroundColor = c; } public void setOverlayPosition(int p) { ovlPos = p; } }