]> matita.cs.unibo.it Git - logicplayer.git/blob - mainActivity/src/com/example/furt/myapplication/BorderedTextView.java
846aeb1a790596cd50a0f6fc631fc70fb67f055a
[logicplayer.git] / mainActivity / src / com / example / furt / myapplication / BorderedTextView.java
1 package com.example.furt.myapplication;
2
3 import android.content.Context;
4 import android.graphics.Canvas;
5 import android.graphics.Color;
6 import android.graphics.Paint;
7 import android.util.AttributeSet;
8 import android.util.Log;
9 import android.widget.TextView;
10
11 public class BorderedTextView extends TextView {
12     private Paint paint = new Paint();
13     public static final int BORDER_TOP = 0x00000001;
14     public static final int BORDER_RIGHT = 0x00000002;
15     public static final int BORDER_BOTTOM = 0x00000004;
16     public static final int BORDER_LEFT = 0x00000008;
17     private Border[] borders;
18
19     public BorderedTextView(Context context, AttributeSet attrs, int defStyle) {
20         super(context, attrs, defStyle);
21         init();
22     }
23
24     public BorderedTextView(Context context, AttributeSet attrs) {
25         super(context, attrs);
26         init();
27     }
28
29     public BorderedTextView(Context context) {
30         super(context);
31         init();
32     }
33     private void init(){
34         paint.setStyle(Paint.Style.STROKE);
35         paint.setColor(Color.BLACK);
36         paint.setStrokeWidth(4);
37     }
38     @Override
39     protected void onDraw(Canvas canvas) {
40         super.onDraw(canvas);
41         if(borders == null) return;
42         for(Border border : borders){
43             paint.setColor(border.getColor());
44             paint.setStrokeWidth(border.getWidth());
45
46             if(border.getStyle() == BORDER_TOP){
47                 canvas.drawLine(0, 0, getWidth(), 0, paint);
48             } else
49             if(border.getStyle() == BORDER_RIGHT){
50                 canvas.drawLine(getWidth(), 0, getWidth(), getHeight(), paint);
51             } else
52             if(border.getStyle() == BORDER_BOTTOM){
53                 canvas.drawLine(0, getHeight(), getWidth(), getHeight(), paint);
54             } else
55             if(border.getStyle() == BORDER_LEFT){
56                 canvas.drawLine(0, 0, 0, getHeight(), paint);
57             }
58         }
59     }
60
61     public Border[] getBorders() {
62         return borders;
63     }
64
65     public void setBorders(Border[] borders) {
66         this.borders = borders;
67     }
68 }