java - 如何将图像放入 GoogleMaps api fragment 中

标签 java android image google-maps-markers google-maps-android-api-2

我想插入一个带有图像的 fragment ,每当有人单击该标记时,他们都会在标记描述( fragment )中看到一个位图图像。

  mSydney = mMap.addMarker(new MarkerOptions()
            .position(SYDNEY)
            .title("test")
            .snippet(IMAGE HERE)
            .icon();

我有一个带有图像的 URL,我该如何操作?

最佳答案

我用了Picasso用于图像加载

这是用于扩展自定义信息窗口的java代码

googleMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
        @Override
        public View getInfoWindow(final Marker marker) {
            v[0] = getActivity().getLayoutInflater().inflate(R.layout.map_info_design, null);
            if (marker != null) {

                final ImageView logo=(ImageView)v[0].findViewById(R.id.logo);




                t1=new Target() {
                    @Override
                    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                        logo.setImageBitmap(bitmap);

                    }

                    @Override
                    public void onBitmapFailed(Drawable errorDrawable) {

                    }

                    @Override
                    public void onPrepareLoad(Drawable placeHolderDrawable) {

                    }
                };
                Picasso.with(getActivity())
                        .load(b1.get(Integer.parseInt(marker.getSnippet()))).error(R.drawable.logo_icon)
                        .into(logo,new MarkerCallback(marker));

            }
            return (v[0]);
        }

        @Override
        public View getInfoContents(Marker marker) {


            return null;
        }
    });

布局 XML 文件 (R.layout.custom_marker_maps)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:background="@drawable/comment_icon"
android:padding="10dp"
android:layout_height="wrap_content">

<ImageView
    android:layout_width="60dp"
    android:layout_marginLeft="10dp"
    android:layout_marginStart="10dp"
    android:layout_centerInParent="true"
    android:layout_height="60dp"
    android:id="@+id/logo"/>

</RelativeLayout>

添加此回调代码(解决Picasso bug)

static class MarkerCallback implements Callback {
    Marker marker=null;

    MarkerCallback(Marker marker) {
        this.marker=marker;
    }

    @Override
    public void onError() {
        Log.e(getClass().getSimpleName(), "Error loading thumbnail!");
    }

    @Override
    public void onSuccess() {
        if (marker != null && marker.isInfoWindowShown()) {
            marker.hideInfoWindow();
            marker.showInfoWindow();
        }
    }
}

输出

enter image description here

关于java - 如何将图像放入 GoogleMaps api fragment 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44500817/

相关文章:

java - 在 Eclipse 中将 native 库导出到外部包不起作用。这是一个错误吗?

java - httpservlet 的 public service() 方法和 protected service() 方法有什么区别

java - 所拍摄照片的亮度问题 (Xamarin.Android)

android - 如何将 Beta 测试人员添加到开发人员控制台,我何时会获得 Opt -In URl

python - 如何让自动编码器处理小型图像数据集

javascript - 通过 Javascript 加载远程图像,然后有选择地添加到数组

java - 如何在不使用 android 线程的情况下延迟更改 textview 文本?

java - C3P0 ComboPooledDataSource getConnection() 是否始终返回有效的连接?

java - Android 应用程序可以在手机上运行,​​但不能在 AVD 上运行

android - 在 Samsung Galaxy 设备上选择图像旋转