package com.wlx.iblueyeclient.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
public class TemperatureView extends SurfaceView implements Callback {
public TemperatureView(Context context, AttributeSet attrs) {
super(context, attrs);
getHolder().addCallback(this);
}
private String temp = "100";
private Paint mPaint = new Paint();
private Paint paintCircle = new Paint();
private Paint paintLine = new Paint();
private Paint paintCircle2 = new Paint();
private Paint background = new Paint();
private static int topPading = 200;
private static int leftPading = 100;
// private static int rightPading = 10;
// private static int bottomPading = 10;
private static int xdegree = 60;
private static int ydegree = 200;
private int temMax = 100;
private int temMin = 0;
@Override
protected void drawableStateChanged() {
super.drawableStateChanged();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
float tem1 = Float.parseFloat(temp);
/** 画温度计的主体及背景色 **/
background.setColor(Color.rgb(20, 255, 255));
canvas.drawCircle(leftPading + 50, topPading - 20 + 18, 20, background);
canvas.drawRect(leftPading + 30, topPading, leftPading + 70, ydegree
+ topPading, background);
canvas.drawCircle(leftPading + 50, ydegree + 18 + topPading, 30,
background);
/* 20,248,255 */
/** 画温度计的水银及背景色 **/
/* 设置温度计的主体的颜色 */
mPaint.setColor(Color.rgb(231, 245, 255));
paintCircle2.setColor(Color.GREEN);
/* 画温度计的主体 */
canvas.drawRect(leftPading + 40, topPading, leftPading + 60, ydegree
+ topPading, paintCircle2);
canvas.drawCircle(leftPading + 50, topPading, 10, paintCircle2);
/* 设置温度计的度数刻度点的颜色 */
paintLine.setColor(Color.rgb(0, 0, 255));
/* 设置温度计的球体的颜色 */
paintCircle.setColor(Color.rgb(255, 0, 0));
canvas.drawCircle(leftPading + 50, topPading + ydegree - (tem1 * 2),
10, paintCircle);
canvas.drawRect(leftPading + 40, topPading + ydegree - (tem1 * 2),
leftPading + 60, ydegree + topPading, paintCircle);
canvas.drawCircle(leftPading + 50, ydegree + 18 + topPading, 20,
paintCircle);
while (ydegree > -1) {
/* 画温度计的最小刻度 */
canvas.drawLine(leftPading + xdegree, ydegree + topPading,
leftPading + xdegree + 5, ydegree + topPading, mPaint);
if (ydegree % 20 == 0) {
canvas.drawLine(leftPading + xdegree, ydegree + topPading,
leftPading + xdegree + 10, ydegree + topPading,
paintLine);
canvas.drawText(temMin + "", leftPading + 70, ydegree
+ topPading, mPaint);
temMin += 10;
}
ydegree -= 4;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
public int getTemMax() {
return temMax;
}
public void setTemMax(int temMax) {
this.temMax = temMax;
}
public int getTemMin() {
return temMin;
}
public void setTemMin(int temMin) {
this.temMin = temMin;
}
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
}