android 自定义view用canvas接收数据动态画图 图画着画着报空指针错误是什么情况
//发数据
for(int i = 0;i<data.length;i++) {
if (data[i] >= 350 && data[i] <= 380) {
view.SetData(data[i]);
}
}
//自定义view接收数据
public void SetData(final int aaa){
new Thread(new Runnable() {
@Override
public void run() {
while(true){ //在线程中不断往集合中增加数据
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(data.size()>MaxDataSize){ //判断集合的长度是否大于最大绘制长度
data.remove(0); //删除头数据
}
data.add(aaa);
Log.i("dcb***---", "run: "+""+aaa);
mh.sendEmptyMessage(0); //发送空消息通知刷新
}
}
}).start();
}
private Handler mh=new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==0){ //判断接受消息类型
MyView.this.invalidate(); //刷新View
}
};
};
//画图
if(data.size()>1){
for (int i = 1; i < data.size(); i++) { //依次取出数据进行绘制
// int data2 = Integer.parseInt(data.get(i-1))-29;
Log.i("dcb", "onDraw: "+""+i);
canvas.drawLine(xPoint+(i-1)*xScale, yPoint-(data.get(i-1)-350)*yScale/10, xPoint+i*xScale, yPoint-(data.get(i)-350)*yScale/10, paint);
}
开始画图是正常的,10s钟左右就在画图报最后一句代码说是空指针错误,但是我传入随机生成的整数就能一直画图。
还有一个问题就是 我只传入两个数据,为什么会一直画图呢
求指教