OSDN Git Service

ライブビュー画面内部に表示する文字はすべて影をつけてちょっと読みやすくした。
[gokigen/A01c.git] / wear / src / main / java / jp / sfjp / gokigen / a01c / liveview / CameraLiveImageView.java
index 8767ff9..e8e3e56 100644 (file)
@@ -10,6 +10,7 @@ import android.graphics.Paint;
 import android.graphics.PointF;
 import android.graphics.Rect;
 import android.graphics.RectF;
+import android.graphics.Typeface;
 import android.media.ExifInterface;
 import android.os.Looper;
 import android.preference.PreferenceManager;
@@ -550,10 +551,12 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
 
         Paint framePaint = new Paint();
         framePaint.setStyle(Paint.Style.STROKE);
+        framePaint.setAntiAlias(true);
 
-        DisplayMetrics dm = getResources().getDisplayMetrics();
-        float strokeWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1.0f, dm);
-        framePaint.setStrokeWidth(strokeWidth);
+        //DisplayMetrics dm = getResources().getDisplayMetrics();
+        //float strokeWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1.0f, dm);
+        //framePaint.setStrokeWidth(strokeWidth);
+        framePaint.setStrokeWidth(0.0f);
         framePaint.setColor(gridFrameDrawer.getDrawColor());
         gridFrameDrawer.drawFramingGrid(canvas, gridRect, framePaint);
     }
@@ -577,7 +580,7 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
         int centerX = width / 2;
         int centerY = height / 2;
 
-        float maxBandWidth = width / 3.0f;     // ゲージの最大長 (画面の 1/3 ぐらい)
+        //float maxBandWidth = width / 3.0f;     // ゲージの最大長 (画面の 1/3 ぐらい)
         float maxBandHeight = height / 3.0f;   // ゲージの最大長 (画面の 1/3 ぐらい)
         int barWidthInitial = 4;               // 表示するゲージの幅(の初期値)
         int barWidth;                          // 実際に表示するゲージの幅
@@ -602,13 +605,25 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
         canvas.drawLine((width - barWidth), centerY, (width - barWidth), (centerY + verticalSize), paint);
 
         // 水平線の表示
-        float YY = canvas.getHeight() / 2.0f; // centerY
         float horizontalValue = levelGauge.getLevel(ILevelGauge.LevelArea.LEVEL_HORIZONTAL);
-        float diffY = (float) Math.sin(Math.toRadians(horizontalValue)) * (float) centerX;
         paint.setStrokeWidth(2.0f);
         paint.setAntiAlias(true);
         paint.setColor(levelGauge.getLevelColor(horizontalValue));
-        canvas.drawLine(0, (YY + diffY), width, (YY - diffY), paint);
+        if ((imageRotationDegrees == 0) || (imageRotationDegrees == 180))
+        {
+            // 通常状態
+            float YY = canvas.getHeight() / 2.0f; // centerY
+            float diffY = (float) Math.sin(Math.toRadians(horizontalValue)) * (float) centerX;
+            canvas.drawLine(0, (YY + diffY), width, (YY - diffY), paint);
+        }
+        else
+        {
+            // 縦持ち状態
+            float XX = canvas.getWidth() / 2.0f; // centerX
+            float diffX = (float) Math.sin(Math.toRadians(horizontalValue)) * (float) centerY;
+            canvas.drawLine((XX + diffX), 0, (XX - diffX), canvas.getHeight(), paint);
+
+        }
 /*
         // 縦と同じ水平線を表示する場合...
         float horizontalValue = levelGauge.getLevel(ILevelGauge.LevelArea.LEVEL_HORIZONTAL);
@@ -655,6 +670,7 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
             paint.setColor(messageHolder.getColor(ShowMessageHolder.MessageArea.CENTER));
             paint.setTextSize(messageHolder.getSize(ShowMessageHolder.MessageArea.CENTER));
             paint.setAntiAlias(true);
+            paint.setShadowLayer(5.0f, 3.0f, 3.0f, Color.BLACK);  // これで文字に影をつけたい
             Paint.FontMetrics fontMetrics = paint.getFontMetrics();
             float cx = (canvas.getWidth() / 2.0f) - (paint.measureText(message) / 2.0f);
             float cy = (canvas.getHeight() / 2.0f) - ((fontMetrics.ascent + fontMetrics.descent) / 2.0f);
@@ -669,6 +685,7 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
             paintUp.setColor(messageHolder.getColor(ShowMessageHolder.MessageArea.UPLEFT));
             paintUp.setTextSize(messageHolder.getSize(ShowMessageHolder.MessageArea.UPLEFT));
             paintUp.setAntiAlias(true);
+            paintUp.setShadowLayer(5.0f, 3.0f, 3.0f, Color.BLACK);  // これで文字に影をつけたい
             Paint.FontMetrics fontMetrics = paintUp.getFontMetrics();
             canvas.drawText(message, viewRect.left + 3.0f, viewRect.top + (fontMetrics.descent - fontMetrics.ascent), paintUp);
         }
@@ -681,6 +698,7 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
             paintUp.setColor(messageHolder.getColor(ShowMessageHolder.MessageArea.UPRIGHT));
             paintUp.setTextSize(messageHolder.getSize(ShowMessageHolder.MessageArea.UPRIGHT));
             paintUp.setAntiAlias(true);
+            paintUp.setShadowLayer(5.0f, 3.0f, 3.0f, Color.BLACK);  // これで文字に影をつけたい
             float width = paintUp.measureText(message);
             Paint.FontMetrics fontMetrics = paintUp.getFontMetrics();
             canvas.drawText(message, (viewRect.right - 3.0f) - width, viewRect.top + (fontMetrics.descent - fontMetrics.ascent), paintUp);
@@ -694,6 +712,7 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
             paint.setColor(messageHolder.getColor(ShowMessageHolder.MessageArea.LOWLEFT));
             paint.setTextSize(messageHolder.getSize(ShowMessageHolder.MessageArea.LOWLEFT));
             paint.setAntiAlias(true);
+            paint.setShadowLayer(5.0f, 3.0f, 3.0f, Color.BLACK);  // これで文字に影をつけたい
             Paint.FontMetrics fontMetrics = paint.getFontMetrics();
             canvas.drawText(message, viewRect.left + 3.0f, viewRect.bottom - fontMetrics.bottom, paint);
         }
@@ -706,11 +725,41 @@ public class CameraLiveImageView extends View implements CameraLiveViewListenerI
             paint.setColor(messageHolder.getColor(ShowMessageHolder.MessageArea.LOWRIGHT));
             paint.setTextSize(messageHolder.getSize(ShowMessageHolder.MessageArea.LOWRIGHT));
             paint.setAntiAlias(true);
+            paint.setShadowLayer(5.0f, 3.0f, 3.0f, Color.BLACK);  // これで文字に影をつけたい
             float width = paint.measureText(message);
             Paint.FontMetrics fontMetrics = paint.getFontMetrics();
             canvas.drawText(message, (viewRect.right - 3.0f) - width, viewRect.bottom - fontMetrics.bottom, paint);
         }
 
+/**/
+        // 画面上部中央に表示する
+        message = messageHolder.getMessage(ShowMessageHolder.MessageArea.UPCENTER);
+        if ((message != null)&&(message.length() > 0))
+        {
+            Paint paintUp = new Paint();
+            paintUp.setColor(messageHolder.getColor(ShowMessageHolder.MessageArea.UPCENTER));
+            paintUp.setTextSize(messageHolder.getSize(ShowMessageHolder.MessageArea.UPCENTER));
+            paintUp.setAntiAlias(true);
+            paintUp.setShadowLayer(5.0f, 3.0f, 3.0f, Color.BLACK);  // これで文字に影をつけたい
+            float width = paintUp.measureText(message) / 2.0f;
+            Paint.FontMetrics fontMetrics = paintUp.getFontMetrics();
+            canvas.drawText(message, (viewRect.centerX()) - width, viewRect.top + (fontMetrics.descent - fontMetrics.ascent), paintUp);
+        }
+
+        // 画面下部中央に表示する
+        message = messageHolder.getMessage(ShowMessageHolder.MessageArea.LOWCENTER);
+        if ((message != null)&&(message.length() > 0))
+        {
+            Paint paint = new Paint();
+            paint.setColor(messageHolder.getColor(ShowMessageHolder.MessageArea.LOWCENTER));
+            paint.setTextSize(messageHolder.getSize(ShowMessageHolder.MessageArea.LOWCENTER));
+            paint.setAntiAlias(true);
+            paint.setShadowLayer(5.0f, 3.0f, 3.0f, Color.BLACK);  // これで文字に影をつけたい
+            float width = paint.measureText(message) / 2.0f;
+            Paint.FontMetrics fontMetrics = paint.getFontMetrics();
+            canvas.drawText(message, (viewRect.centerX()) - width, viewRect.bottom - fontMetrics.bottom, paint);
+        }
+/**/
     }
 
     /**