public class MainActivity extends Activity {
private int CODE = 0x0001;
private ZXView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = new ZXView(this);
setContentView(view);
new Thread() {
public void run() {
while (true) {
Message message = new Message();
message.what = CODE;
message.arg1 = (int) (Math.random() * 100);
handler.sendMessage(message);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}.start();
}
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == CODE) {
view.updata(msg.arg1);
}
};
};
class ZXView extends View {
private List<Float> list;
private int num = -1;
private int x = 35;
private int shu = 35;
public ZXView(Context context) {
super(context);
list = new ArrayList<Float>();
}
public void updata(float data) {
list.add(data);
if (num > 6) {
list.remove(0);
} else {
num += 1;
}
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
x = 30;
canvas.translate(10, 10);
Paint paint = new Paint();
paint.setStyle(Style.STROKE);
paint.setColor(Color.BLUE);
Path path = new Path();
int max;
if (num < 6) {
max = num;
} else {
max = 6;
}
if (num >= 0) {
path.moveTo(35 + max * shu, getHeight() - list.get(0) - 30);
canvas.drawCircle(35 + max * shu, getHeight() - list.get(0)
- 30, 10, paint);
canvas.drawText("" + list.get(0), 35 + max * shu, getHeight()
- list.get(0) - 40, paint);
for (int i = 1; i <= max; i++) {
path.lineTo(35 + (max - i) * shu, getHeight() - list.get(i)
- 30);
canvas.drawCircle(35 + (max - i) * shu,
getHeight() - list.get(i) - 30, 10, paint);
canvas.drawText("" + list.get(i), 35 + (max - i) * shu,
getHeight() - list.get(i) - 40, paint);
}
canvas.drawPath(path, paint);
}
super.onDraw(canvas);
}
}
}
private int CODE = 0x0001;
private ZXView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = new ZXView(this);
setContentView(view);
new Thread() {
public void run() {
while (true) {
Message message = new Message();
message.what = CODE;
message.arg1 = (int) (Math.random() * 100);
handler.sendMessage(message);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}.start();
}
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == CODE) {
view.updata(msg.arg1);
}
};
};
class ZXView extends View {
private List<Float> list;
private int num = -1;
private int x = 35;
private int shu = 35;
public ZXView(Context context) {
super(context);
list = new ArrayList<Float>();
}
public void updata(float data) {
list.add(data);
if (num > 6) {
list.remove(0);
} else {
num += 1;
}
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
x = 30;
canvas.translate(10, 10);
Paint paint = new Paint();
paint.setStyle(Style.STROKE);
paint.setColor(Color.BLUE);
Path path = new Path();
int max;
if (num < 6) {
max = num;
} else {
max = 6;
}
if (num >= 0) {
path.moveTo(35 + max * shu, getHeight() - list.get(0) - 30);
canvas.drawCircle(35 + max * shu, getHeight() - list.get(0)
- 30, 10, paint);
canvas.drawText("" + list.get(0), 35 + max * shu, getHeight()
- list.get(0) - 40, paint);
for (int i = 1; i <= max; i++) {
path.lineTo(35 + (max - i) * shu, getHeight() - list.get(i)
- 30);
canvas.drawCircle(35 + (max - i) * shu,
getHeight() - list.get(i) - 30, 10, paint);
canvas.drawText("" + list.get(i), 35 + (max - i) * shu,
getHeight() - list.get(i) - 40, paint);
}
canvas.drawPath(path, paint);
}
super.onDraw(canvas);
}
}
}