首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何根据从url下载的图片设置表单元格中imageview的动态高度

根据从URL下载的图片设置表单元格中ImageView的动态高度,可以通过以下步骤实现:

  1. 首先,使用网络请求库(如OkHttp、Volley等)从给定的URL下载图片到本地存储。
  2. 下载完成后,使用图片处理库(如Picasso、Glide等)加载本地图片文件到ImageView中。
  3. 在加载图片之前,获取图片的宽度和高度信息。
  4. 根据获取到的图片宽度和高度,动态计算ImageView的高度。
  • 如果你使用的是RecyclerView或ListView等可滚动的列表,可以根据图片的宽高比例和列表的宽度来计算ImageView的高度。例如,假设列表的宽度为w,图片的宽度为imgWidth,图片的高度为imgHeight,则ImageView的高度可以计算为:imageViewHeight = (w * imgHeight) / imgWidth。
  • 如果你使用的是固定大小的表单元格,可以根据图片的宽高比例和表单元格的宽度来计算ImageView的高度。例如,假设表单元格的宽度为cellWidth,图片的宽度为imgWidth,图片的高度为imgHeight,则ImageView的高度可以计算为:imageViewHeight = (cellWidth * imgHeight) / imgWidth。
  1. 将计算得到的ImageView的高度应用到ImageView上,使其能够正确显示图片。

以下是一个示例代码片段,演示如何根据从URL下载的图片设置表单元格中ImageView的动态高度:

代码语言:java
复制
// 使用OkHttp进行网络请求和下载图片
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
        .url(imageUrl)
        .build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        // 处理请求失败的情况
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        // 将下载的图片保存到本地存储
        File imageFile = saveImageLocally(response.body().byteStream());

        // 使用Picasso加载本地图片文件到ImageView中
        Picasso.get().load(imageFile).into(imageView, new Callback() {
            @Override
            public void onSuccess() {
                // 获取图片的宽度和高度
                int imgWidth = imageView.getDrawable().getIntrinsicWidth();
                int imgHeight = imageView.getDrawable().getIntrinsicHeight();

                // 根据图片的宽高比例和表单元格的宽度计算ImageView的高度
                int cellWidth = cellView.getWidth();
                int imageViewHeight = (cellWidth * imgHeight) / imgWidth;

                // 将计算得到的ImageView的高度应用到ImageView上
                imageView.getLayoutParams().height = imageViewHeight;
                imageView.requestLayout();
            }

            @Override
            public void onError(Exception e) {
                // 处理加载图片失败的情况
            }
        });
    }
});

请注意,上述示例代码中使用了Picasso库来加载图片,你也可以根据自己的需求选择其他图片处理库。此外,根据具体的开发环境和需求,可能需要进行一些适当的调整和错误处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

问与答98:如何根据单元格动态隐藏指定行?

excelperfect Q:我有一个工作,在单元格B1输入有数值,我想根据这个数值动态隐藏行2至行100。...具体地说,就是在工作中放置一个命令按钮,如果单元格B1数值是10时,当我单击这个命令按钮时,会显示前10行,即第2行至第11行;再次单击该按钮后,隐藏全部行,即第2行至第100行;再单击该按钮,...则又会显示第2行至第11行,又单击该按钮,隐藏第2行至第100行……也就是说,通过单击该按钮,重复显示第2行至第11行与隐藏第2行至第100行操作。...图1 如何实现? 注:这是在chandoo.org论坛上看到一个贴子,有点意思。...EntireRow.Hidden = False Application.Goto Range("A1"), True b =False End If End Sub 在工作中放置一个命令按钮

6.2K10

DTCoreText集成与使用目录一、相关资源二、DTCoreText集成三、DTCoreText使用四、可能遇到错误五、参考链接

但是Github下载文件却不能直接使用。起初我是直接网上其他地方下载打包好静态库来使用,但这样会遗漏掉更新。...使用下载工程可以根据需求修改编译配置,然后运行工程得到适合不同平台静态库。...,然后就可以很方便处理响应事件了,其中: //url:Html超链接(可以根据需要设置http、tel、mailto等) //identifier:属于该视图唯一性标识...通过这个单元格类,我们可以方便设置富文本以及获取单元格高度。以下是使用DTAttributedTextCell显示富文本核心代码: 3.1....:%d",i]]; } //这里提供Html图片链接,没有宽高属性,代码已经演示了如何处理 int k = i % 6;

4.7K90

·第三方网络图片处理框架:SDWebImage(官方文档翻译篇)

目前,虽然AFNetworking也提供了图片下载及缓存策略,但更专业时候,图片加载框架一般用SDWebImage,正如主流APP(如QQ和微信)会用到。...,它具有自动缓存到期处理 后台图像解压缩 保证相同URL不会被下载多次 保证虚假URLs不会重复重试 保证主线程永远不会被阻止 好性能!...通过从Github下载项目或者使用CocoaPods尝试更简单方法来尝试这个例子pod try SDWebImage 进入安装步骤 阅读SDWebImage 4.0迁移指南,了解3.x到4.x更改...")) 有关如何使用库和清除示例详细信息,请参阅详细的如何使用 8....常见问题 ---- 9.1 UITableViewCell与使用动态图像大小尺寸 UITableView根据单元格第一个图像集,确定图像大小尺寸。

3.6K20

Android瀑布流照片墙实现,体验不规则排列美感

每当需要添加一张图片时,会将这张图片宽度压缩成和列一样宽,再按照同样压缩比例对图片高度进行压缩,然后在这三列找出当前高度最小一列,将图片添加到这一列。...* @param bitmap * LruCache键,这里传入网络上下载Bitmap对象。...如果这张图片已经存在于SD卡,则直接SD卡里读取,否则就从网络上下载。...然后在LoadImageTask,首先会先检查一下这张图片是不是已经存在于SD卡中了,如果还没存在,就从网络上下载,然后把这张图片存放在LruCache。...当这些图片又重新变为可见时候,只需要再从LruCache中将这些图片重新取出即可。如果某张图片已经LruCache中被移除了,就会开启一个LoadImageTask,将这张图片重新加载到内存

2.8K50

问题——持续更新

解决:没有设置代理,方法无法调用 继承自UITableViewController视图控制器要想自定义单元格要删除系统分区代码。 非自定义单元格为什么无法设置黑夜模式??...在表格协议方法  return  2  和return  _apps.count 结果不同(表现在单元格高度上)???...适配问题 怎么根据网络上上图片确定自己定义cell高度以及上面imageView大小 uilabel  文字置顶??...如何获取全屏图片用于上传   command+S 10.4 新加: 为ViewController添加导航控制器(xcode6将自动设置为根视图控制器)?...为什么在xib拖拽imageView时候,总是会跑出去?     修改数据库数据有问题,无法修改?     怎么传递相册图片?

1.2K20

使用lrucache和diskLrucache实现照片墙

ImageView设置一个Tag,保证异步加载图片时不会乱序         imageView.setTag(url);           imageView.setImageResource...此方法会在LruCache检查所有屏幕可见ImageViewBitmap对象,      * 如果发现任何一个ImageViewBitmap对象不在缓存,就会开启异步线程去下载图片。...Tag找到相应ImageView控件,将下载图片显示出来。             ...接着在getView()方法,我们为每个ImageView设置了一个唯一Tag,这个Tag作用是为了后面能够准确地找回这个ImageView,不然异步加载图片会出现乱序情况。...首先根据图片URL生成对应MD5 key,然后调用DiskLruCacheget()方法来获取硬盘缓存,如果没有获取到的话则从网络上请求图片并写入硬盘缓存,接着将Bitmap对象解析出来并添加到内存缓存当中

1.5K90

【Android 控件使用及源码解析】 GridView规则显示图片仿微信朋友圈发图片

下面说一下自己思路: 1.获取网络图片 2.初始化gridview,自定义适配器 3.根据图片数量设置gridview列数 4.更新适配器 下面贴上部分源码并给大家解析一下 一、首先是GridView...大体上也是将图片下载到本地,用Imageloader加载,不过我这里有上传失败和新建,所以不太一样。...); noScrollgridview.setAdapter(picAdapter); //根据图片数量设置图片列 int size = appItemFile.getFiles...GridView列数为3,根据图片数量动态设置列数。...ImageView上部分位置 8)fitXY:把原图按照指定大小在View显示,拉伸显示图片,不保持原比例,填满ImageView. ok就先这样了,以后我会经常更新博客和大家分享

1.1K10

Android照片墙完整版,完美结合LruCache和DiskLruCache

此方法会在LruCache检查所有屏幕可见ImageViewBitmap对象, * 如果发现任何一个ImageViewBitmap对象不在缓存,就会开启异步线程去下载图片。...Tag找到相应ImageView控件,将下载图片显示出来。...接着在getView()方法,我们为每个ImageView设置了一个唯一Tag,这个Tag作用是为了后面能够准确地找回这个ImageView,不然异步加载图片会出现乱序情况。...进入到loadBitmaps()方法可以看到,实现是调用了getBitmapFromMemoryCache()方法来内存获取缓存,如果获取到了则直接调用ImageViewsetImageBitmap...首先根据图片URL生成对应MD5 key,然后调用DiskLruCacheget()方法来获取硬盘缓存,如果没有获取到的话则从网络上请求图片并写入硬盘缓存,接着将Bitmap对象解析出来并添加到内存缓存当中

1.5K90

UITableView性能优化-中级篇

老实说,UITableView性能优化 这个话题,最经常遇到还是在面试,常见回答例如: Cell复用机制 Cell高度预先计算 缓存Cell高度 圆角切割 等等. . ....:(NSIndexPath *)indexPath去渲染cell,在cell如果设置loadImage,不会调用; 而当cell进去界面时候,再进行cell渲染(无论是init还是复用池中取)...YYCache是否有该url,有的话,直接读取缓存图片数据,没有的话,走图片下载逻辑,并缓存图片 问题所在: 如上设置,如果我们cell一行有20行,页面启动时候,直接滑动到最底部,20个cell...,可以先下载图片,再对图片进行圆角处理,再设置到cell上显示 问:YYWebImage 如何设置圆角?...在下载完成回调?如果你在下载完成时候再切割,此时 YYWebImage 缓存图片是初始图片,还是圆角图片?(终于等到3了!!)

1.5K20

六天完成一个简单iOS App - 第五天

可以通过模型拿到,所以给三种类型View添加模型属性,并在cell根据类型设置view显示时候,将模型赋值给view模型属性,拿到模型属性即可拿到中间图片url。...视频和音频服务器也提供一张图片供显示,根据服务器返回得图片url赋值给iamgeView即可。 图片设置稍有些复杂,数据库返回给我们三种图片,小图,图和原图,我们这里先使用原图。...在ViewsetTopic方法设置imageView图片即可。 其中图片需要添加判断是否为gif图片和是否为长图。...未处理长图显示 图片被压缩填充在ImageView,此时在判断如果是长图方法修改imageViewcontentMode即可 // 设置imageView内容以顶端对齐显示,多余会被裁剪掉...对图片长度进行计算,如果长度没有超过一个屏幕大小,则根据屏幕宽高比计算出图片高度,居中显示在屏幕,保证imageView占据整个屏幕宽度。

85860

Android控件设置宽高比方法

困扰很久问题 Android控件宽和高保持比例,这是我接触Android以来,一直不断会遇到需求。以前,要么就是在代码里直接设置宽和高,要么就是自定义控件。...public class DataBindingAdapters { // 根据View高度和宽高比,设置高度 @BindingAdapter("widthHeightRatio") public...,根据比例计算宽度,然后设置给控件。...属性值必须加上@{},不然是按普通属性处理,不会调用我们方法,编译时会因为找不到属性报错。当然,这个属性只能根据高度计算宽度,如果要根据宽度计算高度,可以用同样方式再加一个属性。 2...., url, errorImage); } else { view.setImageResource(errorImage); } } 直接在布局文件设置要加载图片url,和加载失败时显示默认图

2.4K20

Android在ImageView上直接显示网络图片

ImageView,没有一个方法是可以直接显示网络图片,当我们经常需要显示网络图片时,每次都有一大堆操作,这会很麻烦,今天就教大家在ImageView上轻松显示网络图片。...压缩 这是比较简单网络获取照片,直接在ImageView上显示,但是你有没有考虑过如果网络图片很大,已经超出了手机屏幕大小,如果还是加载原图的话无疑是浪费内存,还有可能造成内存溢出...(width)); return width; } /** * 获取ImageView实际高度 * @return 返回ImageView实际高度...,记得要吧isUseCache设置成true //直接把网络图片路径写上就可以显示网络图片了 String url = "https://pic.cnblogs.com...既然那么强大开源库,我们就简单地了解它是如何使用,先看看with()方法源码,它可以接收6参数,所以在各种情况下都能使用 public static RequestManager with

6K40

Carson带你学Android:最全面解析图片加载库Glide用法

设置加载尺寸 Glide.with(this).load(imageUrl).override(800, 800).into(imageView); 设置加载以及加载失败图片 api里面对placeholder...项目中有很多需要先下载图片然后再做一些合成功能,比如项目中出现图文混排,该如何实现目标下 Glide.with(this).load(imageUrl).centerCrop().into(new...主线程中进行 2.2.4 其他设置 生命周期集成 通过设置绑定生命周期,我们可以更加高效使用Glide提供方式进行绑定,这样可以更好让加载图片请求生命周期动态管理起来 .with...设置动态转换 Glide.with(this).load(imageUrl).centerCrop().into(imageView); 设置下载优先级 Glide.with(this).load(imageUrl...Picasso 只会缓存原始尺寸图片,而 Glide 缓存是多种规格,也就意味着 Glide 会根据ImageView 大小来缓存相应大小图片尺寸 比如你 ImageView 大小是200200

79120

Android图片加载库:最全面解析Glide用法

设置加载尺寸 Glide.with(this).load(imageUrl).override(800, 800).into(imageView); 设置加载以及加载失败图片 api里面对placeholder...项目中有很多需要先下载图片然后再做一些合成功能,比如项目中出现图文混排,该如何实现目标下 Glide.with(this).load(imageUrl).centerCrop().into(new....asBitmap()//显示gif静态图片 .asGif();//显示gif动态图片 .into(imageView); 2.2.3 关于缓存 设置磁盘缓存策略 Glide.with...设置动态转换 Glide.with(this).load(imageUrl).centerCrop().into(imageView); 设置下载优先级 Glide.with(this).load(imageUrl...Picasso 只会缓存原始尺寸图片,而 Glide 缓存是多种规格,也就意味着 Glide 会根据ImageView 大小来缓存相应大小图片尺寸 比如你 ImageView 大小是200

3.3K10

iOS播放gif动态方式探讨 原

iOS播放gif动态方式探讨 一、引言     在iOS开发,UIImageView类专门来负责图片数据渲染,并且UIImageView也有帧动画方法来播放一组图片,但是对于gif类型数据...,UIImageView并没有现成接口提供给开发者使用,在iOS中一般可以通过两种方式来播放gif动态图,一种方式是通过ImageIO框架方法将gif文件数据进行解析,再使用coreAnimation...二、为原生UIImageView添加类别来支持gif动态播放      gif动态图文件包含了一组图片及其信息,信息主要记录着每一帧图片播放时间,我们如果获取到了gif文件中所有的图片同时又获取到每一帧图片播放时间...    经过测试,加载速度上来说,通过UIImageView类别加载方式更加快速,UIWebView方式加载时间会稍长,但是性能上来比较,WebView方式性能更优,播放gif动态图更加流畅...在开发,可以根据需求,适当选择,例如虽然WebView加载方式性能更好,但是在许多情况下,原生UIImageView能够更加自由让开发者进行扩展。

1.8K20

IOS开发之新浪围脖

2.我们如何通过调用可以发图片API上传本地图片呢?为了简化我们APP图片上传,我们就得用到AFNetWorking东西了,如何配置和使用CocoaPods请参考上面的链接。     ...设置图片代码如下: 1 NSURL *url = [NSURL URLWithString:dic[@"user"][@"profile_image_url"]]; 2 [cell.imageView...在之前博客中有一篇“IOS开发之自动布局显示网络请求内容” ,用网络请求是模拟微博请求,博文内容也是模拟,接下来要用到上一篇博文知识:根据请求内容来动态设置Cell高度。...需求难点:       1.cell高度根据本博文和转发博文多少而改变,就是在cell中有两部分内容高度是变化,需要用代码来动态控制其高度。...我们根据博文文字多少来用代码动态改变垂直约束,至于如何用代码改变约束值,请参照以前博客IOS开发之绝对布局和相对布局(屏幕适配),在这就不做过多论述,下面主要讲如何给我们cell添加多个按钮

1.2K50

最全总结 | 聊聊 Python 办公自动化之 PPT(

系列篇第 2 篇文章,将覆盖下列内容 表格 Table 图片 Image,包含静态图片、Gif 动态图片 视频 Video 2....table = insert_table(slide, 3, 3, 3, 5, 13.6, 5) 2-1 如何重新设置行高、列宽?...(table, 2, 1.2) 2-2 设置单元格数据 首先,通过行索引、列索引获取对应单元格对象 # 获取某一个单元格对象 # 注意:索引0开始 # 比如:获取第一行、第一列单元格对象 cell..., 0], font_bold=True) 需要指出是,单元格文本控件除了使用默认段落,也可以添加新段落,设置不同内容及样式 2-4 单元格背景颜色...因此,在实际项目中,我们只需要先获取图片宽高比,然后等比例设置到宽度和高度参数即可 from PIL import Image def get_image_aspect_ratio(image_path

2.7K11

iOS 图片渐进式下载

言归正传,先来解释下,为什么你百度随便弄一张图链接放上去,但没有渐进式下载效果。 实际上这和图片格式支持有关。...也就是看起来是一行一行下载绘制,细心同学会发现,YYWebImage里面就有这样下载设置,代码如下: [imageView yy_setImageWithURL:url options:YYWebImageOptionProgressive...效果最上面大家已经看过了,这种技术被广泛应用于大图下载显示上。 渐进式图片一些小缺点:最初绘制模糊图片,实际上与原图大小有相差、这种绘制更加消耗CPU... 那么,这种图片如何制作呢?...这样美观渐进式下载,我如何实现呢?...有兴趣同学可以去我GitHub下载这个Demo 既然说了这个图片下载,还有个动态图加载图片跟大家分享一下。

1.4K40

android仿知乎ScrollView滚动改变标题栏透明度

说下实现思路: 1、先获取顶部图片高度height,这个有3种方式获取,我用是监听onGlobalLayout方法回调 2、监听scrollview滚动坐标,原生没有这个监听,需要我们自己写个...view继承scrollview,然后重写onScrollChanged()方法,创建一个监听,在这个方法里面回调 3、根据图片高度height和滚动纵坐标y进行判断,算出比例,透明度范围0~255,...根据比例设置改变透明度,当y height是不做改变 实现代码: import com.example.d_changealphabyscroll.widget.ObservableScrollView...) { //返回值是true时候控制去WebView打开,为false调用系统浏览器或第三方浏览器 view.loadUrl(url); return true; } }); //获取顶部图片高度后,...= null) { scrollViewListener.onScrollChanged(this, x, y, oldx, oldy); } } } Demo下载地址:点击打开链接 以上就是本文全部内容

1.4K20
领券