Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我正在使用google mapV2,我正在从google place api下载图像,并希望显示在弹出窗口中_Android_Google Maps_Popupwindow - Fatal编程技术网

Android 我正在使用google mapV2,我正在从google place api下载图像,并希望显示在弹出窗口中

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

我使用所有的类通过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_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。 这是可行的,但我想要一个更好的解决方案