我正在使用谷歌地图 v2 在地图上添加标记(大约 200 个)作为路径,并完美地放置在地图上。但我的要求是为每个标记添加一些时间间隔,所以我希望它看起来像一些动画。所以我尝试了两种方法,第一种方法是
latvalues[] = {....};
longvalues[]={....};
for(int i=0;i<latvalues.length;i++){
map.addMarker(new MarkerOptions().position(new LatLng(latvalues[i],longvalues[i])).title("Info")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.img)));
Thread.sleep(500);
}
这不起作用,只有在放置所有标记后,地图才会加载..
第二种方法是
latvalues[] = {....};
longvalues[]={....};
Timer marktimer = new Timer();
markTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
for(int i=0;i<latvalues.length;i++){
map.addMarker(new MarkerOptions().position(new LatLng(latvalues[i],longvalues[i])).title("Info")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.img)));
}
}
},0, 500);
marktimer.cancel();
这甚至没有加载任何标记...
请提出任何解决方法来实现这一目标......
使用倒数计时器编辑代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.datemap);
SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.busmap);
map=fm.getMap();
map.setMyLocationEnabled(true);
countdown();
}
public void countdown(){
if(this.ctimer != null){
this.ctimer.cancel();
}
this.ctimer = new CountDownTimer(1000,500) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
if(markerno<latitudeValues1.length){
map.addMarker(new MarkerOptions().position(new LatLng(latitudeValues1[markerno],longitudevalues1[markerno])).title("Info")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
markerno++;
}
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeValues1[markerno],longitudevalues1[markerno]), 12));
}
}.start();
}