0
在用戶正在行走時構建應用程序以繪製地圖結構。爲此,我使用Sensor.TYPE_STEP_DETECTOR。在檢測到每一步後,我調用以下方法'setCordinates(StepCalculator stepCalculator)'。但是當我這樣做時,只顯示當前位置(一個圓圈),則不會顯示前往此處的路徑(以前的圓圈)。動態更新android中的相同畫布
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
import java.util.ArrayList;
public class DrawView extends View {
Paint paint = new Paint();
private int cx=0,cy=0;
private Step step;
private ArrayList<Step> steps;
private Bitmap bm;
public DrawView(Context context) {
super(context);
paint.setColor(Color.BLACK);
steps = new ArrayList<Step>();
step = new Step();
}
@Override
public void onDraw(Canvas canvas) {
for (Step i : steps) {
cy = i.getY();
cx = i.getX();
paint.setColor(Color.RED);
canvas.drawCircle(cx, cy, 50, paint);
paint.setColor(Color.BLACK);
canvas.drawCircle(cx, cy, 30, paint);
this.invalidate();
}
// }
/*for(int i =0;i<100;i++)
{
paint.setColor(Color.RED);
canvas.drawCircle(50+(i*10), 50+(i*10), 50, paint);
paint.setColor(Color.BLACK);
canvas.drawCircle(50+(i*10), 50+(i*10), 30, paint);
this.invalidate();
}*/
}
public void setCordinates(StepCalculator stepCalculator) {
stepCalculator.calculateCordinates();
step.setX(stepCalculator.getXCordinates());
step.setY(stepCalculator.getYCordinates());
steps.add(step);
this.invalidate();
}
}
我取代與上面給出的一個代碼(在。 View子類的構造函數)。但它不顯示任何東西.btw我從'公共無效setCordinates(StepCalculator stepCalculator)調用'line.invalidate'' –
我試着只使用路徑,它的工作。謝謝 –
祝你的項目好運。如果您需要更多幫助,請創建一個新問題(並保留原有問題,以便新用戶能夠搜索相關內容,並嘗試此方法)。歡迎來到stackoverflow。 – Bonatti