OSDN Git Service

87676926353200999b84f9e35c8fa5e42a73041f
[gokigen/FujiCam.git] / app / src / main / java / net / osdn / gokigen / cameratest / camtest / InformationView.java
1 package net.osdn.gokigen.cameratest.camtest;
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
10 import androidx.appcompat.widget.AppCompatImageView;
11
12 import net.osdn.gokigen.cameratest.fuji.statuses.Properties;
13 import net.osdn.gokigen.cameratest.fuji.statuses.IFujiStatus;
14
15 public class InformationView extends AppCompatImageView
16 {
17     private final String TAG = toString();
18     private int focusPoint;
19     private int sd_remain_size;
20     private int shooting_mode;
21     private boolean focus_lock;
22     private int battery_level;
23     private int iso;
24
25     public InformationView(Context context) {
26         super(context);
27         initComponent(context);
28     }
29
30     public InformationView(Context context, AttributeSet attrs) {
31         super(context, attrs);
32         initComponent(context);
33     }
34
35     public InformationView(Context context, AttributeSet attrs, int defStyleAttr) {
36         super(context, attrs, defStyleAttr);
37         initComponent(context);
38     }
39
40     private void initComponent(Context context) {
41
42     }
43
44     @Override
45     protected void onDraw(Canvas canvas)
46     {
47         super.onDraw(canvas);
48         drawCanvas(canvas);
49     }
50
51     private void drawCanvas(Canvas canvas)
52     {
53         // Clears the canvas.
54         canvas.drawARGB(255, 0, 0, 0);
55
56         // Rotates the image.
57         int centerX = canvas.getWidth() / 2;
58         int centerY = canvas.getHeight() / 2;
59
60         Paint framePaint = new Paint();
61         framePaint.setStyle(Paint.Style.STROKE);
62         framePaint.setColor(Color.WHITE);
63
64         String message = "SD : " + sd_remain_size + " SHT : " + shooting_mode  + " ISO : " + iso  + " BATT: ";
65         if (battery_level < 0)
66         {
67             message = message + "???";
68         }
69         else
70         {
71             message = message + battery_level + "% ";
72         }
73         canvas.drawText(message, centerX, centerY - 50, framePaint);
74         Log.v(TAG, message);
75
76
77         message = "FOCUS : " + focusPoint;
78         if (focus_lock)
79         {
80             message = message + " (LOCKED)";
81         }
82         canvas.drawText(message, centerX, centerY, framePaint);
83         Log.v(TAG, message);
84
85     }
86
87     /**
88      *   表示エリアの情報を更新する
89      *
90      *
91      */
92     public void drawInformation(IFujiStatus cameraStatus)
93     {
94         focusPoint = cameraStatus.getValue(Properties.FOCUS_POINT);
95         sd_remain_size = cameraStatus.getValue(Properties.SDCARD_REMAIN_SIZE);
96         shooting_mode = cameraStatus.getValue(Properties.SHOOTING_MODE);
97         focus_lock = cameraStatus.isFocusLocked();
98         battery_level = cameraStatus.getBatteryLevel();
99         iso = cameraStatus.getValue(Properties.ISO);
100     }
101
102 }