1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| @Override
protected void onDraw(Canvas canvas) {
for (int i = 0; i < Pois.size(); i++) {
data = Pois.get(i);
float customDistance = (float) (data.getDistance()*0.001);
float angle2 = CalculAngle.getAngle(MyLocationListener.getInstance(context).getLatitude(),
MyLocationListener.getInstance(context).getLongitude(), data.getLat(), data.getLon());
if(angle<angle2 && angle2>0){
WindowManager w = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display d = w.getDefaultDisplay();
int width = d.getWidth();
int height = d.getHeight();
float left = (angle2-angle)*height/angle;
float top = width/(2*customDistance);
data.setPoiX((int)left);
data.setPoiY((int)top);
canvas.drawBitmap(imagePoi,left,top, p);
p.setTextSize((float) 9.5);
p.setStyle(Style.STROKE);
if(data.getTitle().length() < 17){
//canvas.drawText(data.getTitle(), left+35, canvas.getWidth()/(2*customDistance)+107, p);
}
else if(data.getTitle().length() > 21){
//canvas.drawText(data.getTitle(), left+10, canvas.getWidth()/(2*customDistance)+107, p);
}
else
//canvas.drawText(data.getTitle(), left+20, canvas.getWidth()/(2*customDistance)+107, p);
// if(data.getTitle().length() > 19){
// String custumTitle = data.getTitle().substring(0,16);
// canvas.drawText(custumTitle+"..", left, canvas.getWidth()/(2*customDistance)+75, p);
// }
// else
// canvas.drawText(data.getTitle(), left, canvas.getWidth()/2+75, p);
if(customDistance>1){
//canvas.drawText(" "+customDistance+"Km", left+50, canvas.getWidth()/(2*customDistance)+115 ,p);
}
//else
//canvas.drawText(" "+data.getDistance()+"m", left+50, canvas.getWidth()/(2*customDistance)+115 ,p);
canvas.save();
invalidate();
}
} |
Partager