如何将Android自定义钟表View改写为长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计530个文字,预计阅读时间需要3分钟。
javapackage androidart.org.androidart.view;
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.annotation.Nullable;
package androidart.org.androidart.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import java.util.Calendar;
public class ClockView extends View{
private float clockRadius = 300;
private Paint clockPaint;
private float centerX;
private float centerY;
private final static int HOURS = 12;
private final static int HOUR_0 = 0;
private final static int HOUR_3 = 3;
private final static int HOUR_6 = 6;
private final static int HOUR_9 = 9;
private final static int HOUR_0_3_6_9_SIZE = 50;
private final static int HOUR_OTHERS_SIZE = HOUR_0_3_6_9_SIZE/2;
private final static int HOUR_ARROW_SIZE = 200;
private final static int MINUTE_ARROW_SIZE = 250;
private final static int SECOND_ARROW_SIZE = MINUTE_ARROW_SIZE;
private Calendar calendar;
private int currentHour;
private int currentMinute;
private int currentSecond;
private static final int TIME_BASE = 60;
Paint secondPaint = new Paint();
public ClockView(Context context) {
this(context,null);
}
public ClockView(Context context, @Nullable AttributeSet attrs) {
this(context,attrs,-1);
}
public ClockView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
clockPaint = new Paint();
clockPaint.setStyle(Paint.Style.STROKE);
clockPaint.setStrokeWidth(10);
centerX = getLeft()+clockRadius;
centerY = getTop()+clockRadius;
}
private void drawHourBase(Canvas canvas) {
for (int i=0;i
本文共计530个文字,预计阅读时间需要3分钟。
javapackage androidart.org.androidart.view;
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.annotation.Nullable;
package androidart.org.androidart.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import java.util.Calendar;
public class ClockView extends View{
private float clockRadius = 300;
private Paint clockPaint;
private float centerX;
private float centerY;
private final static int HOURS = 12;
private final static int HOUR_0 = 0;
private final static int HOUR_3 = 3;
private final static int HOUR_6 = 6;
private final static int HOUR_9 = 9;
private final static int HOUR_0_3_6_9_SIZE = 50;
private final static int HOUR_OTHERS_SIZE = HOUR_0_3_6_9_SIZE/2;
private final static int HOUR_ARROW_SIZE = 200;
private final static int MINUTE_ARROW_SIZE = 250;
private final static int SECOND_ARROW_SIZE = MINUTE_ARROW_SIZE;
private Calendar calendar;
private int currentHour;
private int currentMinute;
private int currentSecond;
private static final int TIME_BASE = 60;
Paint secondPaint = new Paint();
public ClockView(Context context) {
this(context,null);
}
public ClockView(Context context, @Nullable AttributeSet attrs) {
this(context,attrs,-1);
}
public ClockView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
clockPaint = new Paint();
clockPaint.setStyle(Paint.Style.STROKE);
clockPaint.setStrokeWidth(10);
centerX = getLeft()+clockRadius;
centerY = getTop()+clockRadius;
}
private void drawHourBase(Canvas canvas) {
for (int i=0;i

