Android知识点——Glide获取图片宽高

Android知识点——Glide获取图片宽高,第1张

  先很负责任的说一下,这个内容也是百度来的,但是很不负责任的是,当初只记录解决方案,忘了记录是查看的哪篇博客了,这里先对不知道借鉴的谁表示感谢。无法分享链接,就厚着脸皮把(转)字去掉了,请大家谅解。

  先提供一下 Android知识点——目录 的链接,然后让我们进入正题。

  实际上,这篇博客所说的内容并不是所有人都可以用到,毕竟大多数时候,我们只需要展示,而并不需要知道的宽高;有的时候我们只需要知道展示的宽高(即ImageView)的宽高,不需要知道资源的实际尺寸。

  但是需求千千万万嘛,以程序员的脑洞,怎么能想到产品的脑洞究竟有多大呢?我这里就遇到了一个需求,那就是需要在一个可缩放的上标注icon(类似地图上的marker)。这还不算完,毕竟在找到的缩放控件 PhotoView 中,我们点击到上后,是有点击点位在整个上的百分比坐标回调的。而多端通过百分比是很容易就能在中获取到相同的点位,并回显出对应的icon的(没办法,谁让我找的是方便计算百分比的呢),结果Web端优先做了这部分功能,使用的是在原图上的具体坐标。这样我百分比的计划自然就落空了,只能想办法计算出具体的点位。

  因此获取的原始尺寸就是一个必不可少的环节,我刚刚百度了一下,查到 wangke_king 的 Android获取的宽度和高度 中使用的方法是:

  我这里没有亲测过,不过应该是没有问题,但是很遗憾我们的需求是在网络上做测量,所以这个方法也无法使用,不过如果其他有类似本地需求的,不妨尝试一下。而我之前找到的解决方案为:

  首先说明,上述的方法是可以实现的尺寸测量的,只是有一个小小的问题,那就是想要计算出Drawable的宽高,需要必须等到加载完成之后,尝试了使用viewpost(),监听组件加载完成,但是并不是每次都能获取到Drawable的宽高,因此当初的解决方案是写了个两秒钟的定时器,每50毫秒测量一次,直到获取到值为止。这样的解决方案可谓是相当无脑了,而且还要消耗很多不必要的资源。

  还好皇天不负有心人啊,终于找到了通过Glide获取宽高的方式:

  这样我们就可以通过回调,在Glide将网络注入到对应的组件的时候,得到的Bitmap,然后在通过Bitmap来获取的宽高。但是需要注意的一点是,Bitmap的泛型是需要手动去设置的哦。

  另外SimpleTarget现在已经过时,暂时还没有查到。我搜索过SimpleTarget过时使用什么替换,有一些说法是使用BitmapImageViewTarget ,不过下面是实际测试结果。

链接:

百度-景色

测量结果:

信息:

如果不是我使用有误的话,BitmapImageViewTarget 是无法替换SimpleTarget ,实现测量原始宽高的功能的。

如何用获取网页高度?这是一个贴子

环境:

VS2005 C# WinForm (特别注明:不是ASPnet)

原先用这个方法(在DocumentCompleted事件函数里):

webBrowser1DocumentBodyScrollRectangleHeight

绝大多数情况下,这个方法能够正确返回网页高度。但个别情况下却不行,获取到高度明显小于实际网页高度。

这种网页有个特点,就是它包含加载的组件。我认为DocumentBodyScrollRectangleHeight在这里发生错误是因为没有计算上网页组件所加载的高度。开始我以为是加载较慢所致,于是又额外设了几秒延迟获取DocumentBodyScrollRectangleHeight,结果还是不行。

有点麻烦了,哪位大虾有解决办法?

有了些进展:

使用这个:thisextendWebBrowser1DocumentBodyOffsetRectangleBottom

针对我开头所提到特殊页面。它虽然比实际网页高度相同还是小一些,但基本上不影响浏览了。

下面是我从网上找到的资料(应该是人工翻译的):

我一直从 WebBrowser 控件的文档属性获取 web 页的高度的最后几天。

这是我最新的尝试。

HtmlElementCollection children = webBrowserDocumentAll; int maxOffset = 0; foreach (HtmlElement child in children) { int bottom = 0; bottom = childOffsetRectangleBottom; if (bottom > maxOffset) { maxOffset = bottom; pageHeight = maxOffset; } } 我试了通过在页中找到最低的元素的偏移的底部出页面的最大高度。

问题是页的这在大多数情况下试管苗 500px 有关的实际长度。

任何人如有任何意见吗?我不敢相信只是为了获得一个页面的高度是多么困难 !

问题: Unknown

来自这个问题: stackoverflowcom

答案

找到 BODY 标签,并获得 OffsetRectangleBottom 的该元素。 这会给你页面的高度。

如果是通用的写css margin padding 然后再组件加cls,

如果不是就在组件中写margin 或padding,也可以写成style='margin:5px'

标题的高度可以直接设置 height属性

期望的效果是,image的高度height是自动的。

网上好多说把image的mode设置为widthFit。这种方法还是需要给image设置宽度高度。并不是height自动,而是height固定,在显示的时候,显示的区域在高度上是自适应的

所以还是需要用js计算

imageLoad: function(e) {

    var $width=edetailwidth,//获取真实宽度

        $height=edetailheight,

        ratio=$width/$height;    //的真实宽高比例varviewWidth=718,//设置显示宽度,左右留有16rpx边距viewHeight=718/ratio;    //计算的高度值varimage=thisdataimages;

      //将的datadata-index作为image对象的key,然后存储的宽高值

image[etargetdatasetindex]={

        width:viewWidth,

        height:viewHeight

      }

      thissetData({

          images:image

      })

  }

>

以上就是关于Android知识点——Glide获取图片宽高全部的内容,包括:Android知识点——Glide获取图片宽高、WebBrowser怎么获取网页高度、extjs 4 怎样调节组件标题的高度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9439538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存