关于高德地图,自定义Marker使用自己的XMl,Glide加载图片流程
来源:互联网 发布:powershell 连接linux 编辑:程序博客网 时间:2024/06/03 14:04
因为高德地图的marker在设置自定的view时将view转换成图片,所以不能使用网络图片,这时就要我们自己处理。(ios可以android就要自己处理)大概思路就是,先读取缓存中是否有此图片,有则直接设置到marker的view中的imageview中,如果没有就要监听图片加载流程,图片加载完毕时,在设置一遍view到marker中,Glide加载图片代码如下。
vw = LayoutInflater.from(context).inflate(R.layout.view_mark_res, null); //判断缓存中是否存在 boolean isCacheInDisk = Fresco.getImagePipelineFactory().getMainFileCache().hasKey(new SimpleCacheKey(tu)); if (isCacheInDisk) {//如果存在直接拿出数据 BinaryResource resource = ImagePipelineFactory.getInstance() .getMainFileCache().getResource(new SimpleCacheKey(tu)); if (null != resource) { File file = ((FileBinaryResource) resource).getFile();//此处会有FileBinaryResource.getFile()' on a null object BUG bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); ((ImageView) vw.findViewById(R.id.iv_img)).setImageBitmap(bitmap); } else { getFrescoCacheBitmap(Uri.parse(tu), context); } } else getFrescoCacheBitmap(Uri.parse(tu), context);
private void getFrescoCacheBitmap(Uri uri, final Context context) { // final Bitmap frescoTepBm; ImageRequest imageRequest = ImageRequestBuilder .newBuilderWithSource(uri) .setProgressiveRenderingEnabled(true) .build(); ImagePipeline imagePipeline = Fresco.getImagePipeline(); DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(imageRequest, context); dataSource.subscribe(new BaseBitmapDataSubscriber() { @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override public void onNewResultImpl(Bitmap b) { bitmap = b; View vw = LayoutInflater.from(context).inflate(R.layout.view_mark_res, null); if (null != marker) { ((ImageView) vw.findViewById(R.id.iv_img)).setImageBitmap(b); if (rt == 2) vw.findViewById(R.id.iv_play).setVisibility(View.VISIBLE); marker.setIcon(BitmapDescriptorFactory.fromView(vw)); } } @Override public void onFailureImpl(DataSource dataSource) { LogUtils.e(TAG, " onFailureImp"); } }, CallerThreadExecutor.getInstance()); }
阅读全文
0 0
- 关于高德地图,自定义Marker使用自己的XMl,Glide加载图片流程
- 关于高德地图 自定义Marker使用自己的XMl布局的操作
- 关于高德地图 自定义Marker使用自己的XMl布局的操作
- 使用Glide加载网络图片,显示到高德地图的marker
- 高德地图自定义marker图片相关
- 高德地图自定义marker的图片定位的问题
- 高德地图 amap 显示 marker和自定义的infoWindow
- 高德地图自定义Marker点击时出现的InfoWindow
- 高德地图自定义marker不显示的问题
- 高德地图的使用之自动定位和marker的点击显示自定义PopupWindow
- 高德地图自定义Marker显示文字
- 高德地图 AndroidSDK 自定义Marker
- 高德地图自定义Marker显示文字
- 关于高德地图添加Marker遇到的一些坑
- 关于高德地图转换经纬度为屏幕点,方便自定义需链接网络的marker且添加属性动画
- 高德自定义marker
- Android集成高德地图如何自定义marker
- 基于高德地图实现完全自定义Marker
- Eclipse更换工作空间,配置保持不变
- 7 Reverse Integer
- 三种读写XML的方法
- Java中如何恰当的表达“继承”与“扩展”的语义?
- Microsoft Office 2016 for Mac (15.40)破解激活工具与安装源
- 关于高德地图,自定义Marker使用自己的XMl,Glide加载图片流程
- 机器学习(3)——回归算法:最小二乘法(梯度下降法)
- springBoot 怎么利用maven 创建可以执行的jar文件?
- LeetCode--Longest Increasing Subsequence (最长递增子序列)Python
- vue1
- 文件上传
- Python Select 解析
- npm与调试工具的安装
- LeetCode||71. Simplify Path