Android 我正在使用google mapV2,我正在从google place api下载图像,并希望显示在弹出窗口中
我使用所有的类通过Url获取图像Android 我正在使用google mapV2,我正在从google place api下载图像,并希望显示在弹出窗口中,android,google-maps,popupwindow,Android,Google Maps,Popupwindow,我使用所有的类通过Url获取图像 ImageView imV= ((ImageView) view.findViewById(R.id.badge)); // Image url String image_url = "http://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png"; final int stub_id = R.drawable.ic_action_sea
ImageView imV= ((ImageView) view.findViewById(R.id.badge));
// Image url
String image_url = "http://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png";
final int stub_id = R.drawable.ic_action_search;
// ImageLoader class instance
ImageLoader imgLoader = new ImageLoader(getApplicationContext());
// whenever you want to load an image from url
// call DisplayImage function
// url - image url to load
// loader - loader image, will be displayed before getting image
// image - ImageView
imgLoader.DisplayImage(image_url,stub_id ,imV);
但它显示的是默认图像,而不是Url下载的图像
我正在使用goolge的infowindowAdapter类,它说一旦数据和图像加载到窗口中,我就不能更改图像,这就是为什么它会显示第一个默认图像。。。。。以后也不会改变
那么还有别的办法吗?
提前谢谢我也有同样的问题。 我用异步任务解决了它 像这样的
private Drawable _infoImageDrawable;
public class MyMapActivity extends MenuActivity
{
.....code code code....
protected void handleMarkerClicked(final Marker marker, final String url) {
new AsyncTask<Void, Void, Void>()
{
@Override
protected void onPreExecute()
{
super.onPreExecute();
_infoImageDrawable = null;
}
@Override
protected Void doInBackground(Void... params)
{
InputStream is;
try {
is = (InputStream) new URL(url).getContent();
_infoImageDrawable = Drawable.createFromStream(is, "");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
marker.showInfoWindow();
}
}.execute();
}
}
private Drawable\u infoImageDrawable;
公共类MyMapActivity扩展了MenuActivity
{
..代码代码。。。。
受保护的无效handleMarkerClicked(最终标记、最终字符串url){
新建异步任务()
{
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
_infoImageDrawable=null;
}
@凌驾
受保护的Void doInBackground(Void…参数)
{
输入流为;
试一试{
is=(InputStream)新URL(URL).getContent();
_infoImageDrawable=Drawable.createFromStream(为“”);
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果)
{
super.onPostExecute(结果);
marker.showInfoWindow();
}
}.execute();
}
}
然后,我只是将InfoWindowAdapter中的drawable先设置为null(删除旧图像),然后再设置为_imageInfoDrawable。
这是可行的,但我想要一个更好的解决方案。我也有同样的问题。 我用异步任务解决了它 像这样的
private Drawable _infoImageDrawable;
public class MyMapActivity extends MenuActivity
{
.....code code code....
protected void handleMarkerClicked(final Marker marker, final String url) {
new AsyncTask<Void, Void, Void>()
{
@Override
protected void onPreExecute()
{
super.onPreExecute();
_infoImageDrawable = null;
}
@Override
protected Void doInBackground(Void... params)
{
InputStream is;
try {
is = (InputStream) new URL(url).getContent();
_infoImageDrawable = Drawable.createFromStream(is, "");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
marker.showInfoWindow();
}
}.execute();
}
}
private Drawable\u infoImageDrawable;
公共类MyMapActivity扩展了MenuActivity
{
..代码代码。。。。
受保护的无效handleMarkerClicked(最终标记、最终字符串url){
新建异步任务()
{
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
_infoImageDrawable=null;
}
@凌驾
受保护的Void doInBackground(Void…参数)
{
输入流为;
试一试{
is=(InputStream)新URL(URL).getContent();
_infoImageDrawable=Drawable.createFromStream(为“”);
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果)
{
super.onPostExecute(结果);
marker.showInfoWindow();
}
}.execute();
}
}
然后,我只是将InfoWindowAdapter中的drawable先设置为null(删除旧图像),然后再设置为_imageInfoDrawable。
这是可行的,但我想要一个更好的解决方案