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