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;
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);
}
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; // 実際に表示するゲージの幅
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);
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);
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);
}
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);
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);
}
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);
+ }
+/**/
}
/**