package com.dialchart.example;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.ViewGroup.LayoutParams;
public class DialChartActivity extends Activity {
private CategorySeries category = new CategorySeries("");
private DialRenderer renderer = new DialRenderer();
private GraphicalView mChartView;
private long xhqd=0;
Thread mediathread;
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
mChartView.invalidate();
break;
}
super.handleMessage(msg);
}
};
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
category.add("Current", 0);//给仪表一个初始值,不然报错
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);//说明字体的大小
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(Color.RED);//指针的颜色
renderer.addSeriesRenderer(r);
renderer.setLabelsTextSize(8);//仪表盘字体大小
renderer.setLabelsColor(Color.GREEN);//仪表盘格子的颜色
renderer.setShowLabels(true);
//设置指针样式(默认为三角形)此为箭头
renderer.setVisualTypes(new DialRenderer.Type[] {Type.ARROW});
renderer.setMinValue(-100);//仪表盘最小值
renderer.setMaxValue(100);//仪表盘最大值
timer.schedule(task, 0, 1000 * 1); //启动timer,1秒绘制一次
new ValuesThread().start();
}
/**
* 在 onResume 里进行绘制时自动调用
*/
@Override
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getDialChartView(DialChart.this, category, renderer);
layout.addView(mChartView, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
} else {
mChartView.setBackgroundResource(R.id.chart);
mChartView.repaint();
}
}
private class ValuesThread extends Thread{
Random random = new Random(100);//指定随机数的种子数
@Override
public void run() {
while(true){
try {
category.clear();
xhqd=random.nextInt()%100;//得到随机数-100到100
category.add("仪表盘", xhqd);
Thread.sleep(1000);
}catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
在android实现仪表盘布局效果
3星 · 超过75%的资源 需积分: 50 7 浏览量
2012-04-28
16:28:16
上传
评论 9
收藏 41KB ZIP 举报
lipeipei26
- 粉丝: 0
- 资源: 5
最新资源
- Screenshot_2024-05-28-00-57-02-304_net.csdn.csdnplus.jpg
- Screenshot_2024-05-28-01-04-37-857_com.qihoo.contents.jpg
- 快速搭建PHP网站,此为Demo
- 可视化实验7-Matplotlib可视化综合练习.ipynb
- 基于ssm的仿照微博设计开发.zip
- LLVM Cpu0 新后端1
- mysql开发.zip
- SUMMARIZECOLUMNS 的疑似 bug(1)引言案例文件
- 《DAX 底层计算过程演示-ADDCOLUMNS + 复杂上下文环境》配套数据文件
- apache-maven-3.3.9
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页