在提出这个问题之前,我回顾了许多链接
我正在从网络解析xml,并从这个xml中获取我在Android应用中添加到地图(v2)的标记的经度,纬度和名称
到目前为止,一切都运作良好。
mMap.addMarker(new MarkerOptions()
.position(new LatLng(dLat, dLon)) // lat and lon from the xml of the web
.title(NAME_OF_MARKER));
此xml还包含一个字段,其中包含小图像的url以显示标记
<marker>
<lat>40.758895</lat>
<lon>-73.985131</lon>
<name>My Point</name>
<thumb>http://research.cbei.psu.edu/images/uploads/research-digest/general/1.CityIcon.png</thumb>
</marker>
据我所知,xml的图像应该加载到BitMap中,而这个BitMap将它作为标记图标:
mMap.addMarker(new MarkerOptions()
.position(new LatLng(dLat, dLon))
.title(NAME_OF_MARKER))
.setIcon(BitmapDescriptorFactory.fromBitmap(bmp));
我正在使用AsyncTask加载网址并将其分配给位图:
Bitmap bmp;
Canvas canvas1;
//...
public class markers extends AsyncTask<String, Void, String> {
protected void onPreExecute() {
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
bmp = Bitmap.createBitmap(80, 80, conf);
}
public String doInBackground(String... urls) {
try {
URL url = new URL(MY_THUMB); //url of the image parser from the xml ("http://research.cbei.psu.edu/images/uploads/research-digest/general/1.CityIcon.png")
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmp = BitmapFactory.decodeStream(is);
} catch (IOException e) {
}
//...
...在地图上创建标记之前:
canvas1 = new Canvas(bmp);
Paint color = new Paint();
color.setTextSize(35);
color.setColor(Color.BLACK);
//modify canvas
canvas1.drawBitmap(bmp, 0, 0, color);
canvas1.drawText("User Name!", 30, 40, color);
mMap.addMarker(new MarkerOptions()
.position(new LatLng(dLat, dLon))
.title(NAME_OF_MARKER))
.setIcon(BitmapDescriptorFactory.fromBitmap(bmp));
}
..但永远不会奏效。 一切都很好,但从不显示图标。
我仔细阅读了许多相关的线程:
Android load from URL to Bitmap
How to get bitmap from a url in android?
但是我开始工作,当然我已经在清单,互联网,外部写入等方面包含了必要的权限,但没有成功。
我非常感谢任何帮助,我已经测试了数百种方法。
问候并提前感谢