オーバーレイを表示できるアクティビティがあります。このオーバーレイには、Webから取得するマーカーがあります。
このマーカーのURLから遅延読み込みを実装するにはどうすればよいですか?
Thx、Igor
オーバーレイを表示できるアクティビティがあります。このオーバーレイには、Webから取得するマーカーがあります。
このマーカーのURLから遅延読み込みを実装するにはどうすればよいですか?
Thx、Igor
あなたがする必要があるのは、データを取得するために AsyncTask を作成することです。非同期タスクが実行され、データが取得されると、UI スレッドは onPostExecute() を呼び出します。onPostExecute() メソッドでは、Android コードの例と同じように、マップ ビューにデータを追加します。
これがほぼ完全な例です。これで穴埋めできるはずです。
public class SomeActivity extends MapActivity {
private MapView mYourMapView;
protected void onCreate(Bundle yourbundle){
super.onCreate(yourbundle);
setContentView(R.layout.yourcontentview);
mYourMapView = (MapView)findViewById(R.id.yourmapviewid);
GetYourDataTask task = new GetYourDataTask(mYourMapView);
task.execute();
}
}
public class GetYourDataTask extends AsyncTask<Void, Void, Void>{
private MapView mView;
private List<Items> mYourItemsFromInternetSource;
public GetYourDataTask(MapView view){
this.mView = view;
}
protected Void doInBackground(Void... params){
.....get some data from internets
mYourItemsfromInternetSoruce = something you got from internet;
return null;
}
protected Void onPostExecute(){
YourOverlay overlay = new YourOverlay(mYourItemsFromInterSource);
mView.getOverlays().add(overlay);
}
}
public YourOverlay extends ItemizedOverlay<OverlayItem>{
private List<OverlayItem> mItems;
public YourOverlay(List<Item> itemsFromInternet)[
super(boundCenterBottom(someContext.getResources().getDrawable(R.drawable.map_pin)));
//for your items create overlay items then
List<OverlayItem> createdItems = someConvertFunction(itemsFromInternet);
for(OverlayItem item: createdItems){
mItems.add(item);
populate();
}
}
}