android - 为什么 glide 和 picasso 不会在 Google Maps Marker 中加载 url 图片?
问题描述
我正在尝试从我制作的自定义标记布局将图像加载到我的 CircleImageView 中。我尝试使用滑翔或毕加索,但它们都不起作用,它只显示标记的占位符图像。有人可以帮我解决这个问题。我在这被困了大约 4 小时,但仍然找不到导致这种情况的原因。
place2 = new MarkerOptions()
.position(storeLatLng)
.icon(BitmapDescriptorFactory.fromBitmap(createCustomMarker(CheckOutActivity.this , storeIMG, storeName))).title(storeClass);
...
private static Bitmap createCustomMarker(Context context, final String resource, String name) {
View marker = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.bitmap_google_marker_layout_item, null);
de.hdodenhof.circleimageview.CircleImageView image = (de.hdodenhof.circleimageview.CircleImageView) marker.findViewById(R.id.user_dp);
TextView txt_name = (TextView) marker.findViewById(R.id.name);
txt_name.setText(name);
//Glide.with(marker).load(resource).apply(new RequestOptions().placeholder(R.mipmap.loader)).into(image);
Picasso.get()
.load(resource)
.placeholder(R.mipmap.loader)
.error(R.drawable.error)
.into(image);
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
marker.setLayoutParams(new ViewGroup.LayoutParams(52, ViewGroup.LayoutParams.WRAP_CONTENT));
marker.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
marker.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
marker.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(marker.getMeasuredWidth(), marker.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
marker.draw(canvas);
return bitmap;
}
这是结果的示例图像
解决方案
Picasso
或Glid
异步加载图像。在您从视图创建位图时,ImageView
只有占位符(Picasso
或Glid
尚未下载并将图像设置为 ImageView)。所以你可以在 Marker 中看到占位符。创建Bitmap
表单 View 后,以后的任何更改View
都不会影响位图。
要使用实际图像制作标记,您必须在下载后再次更新或重新创建标记Picasso
,并将图像设置为ImageView
.
我认为最好Marker
使用占位符制作并Marker
在下载图像后更新。
推荐阅读
- java - 滚动列表视图时文本视图中的数据切换
- android-studio - 很多工具都不见了
- docker - 如何从本地 dhcp 服务器发布的 IP 访问托管在 Openshift 集群中的网站
- java - 如何在 mongodb 中持久化 JsonNode 对象
- python - k-means ++ 适合大数据吗?
- android - 将 Android 应用程序从 SQLiteOpenHelper 迁移到 Room
- android - 在 Android 上检索 Facebook 个人资料帖子(状态)
- javascript - 为什么我不能从本地存储中取出解析的 JSON 对象?
- javascript - 数据表无法重新初始化数据表并且销毁不起作用
- algorithm - 是否有任何有效的算法来检查我是否至少有一个有效组合可以从一组有效组合中获胜?