在开发当中有时会有这样的需求,将从服务器端下载下来的图片添加到imageView上, 但是下载来的图片尺寸大小不固定,宽高也有可能不成比例, 如果我们直接显示,往往会发现图片被挤压,或者变形失真,如果你为了省事,你可以让你们的UI将图片处理一下,这样是能解决;但是如果这张图片是用户上传的头像, 这就要需要你来处理了。

比如这两张图片:

纵向图片.jpg

横向图片.jpg

我们直接添加到imageView上的结果是:

screen_1.png

这时我们会发现变形失真了。为了解决这一问题最简单的方法就是设置imageView的contentMode属性。因为imageView默认是填满整个容器,所以导致图片变形,影响美观。

首先contentMode的属性有:

typedef NS_ENUM(NSInteger, UIViewContentMode) {

//图片拉伸填充至整个UIImageView(图片可能会变形),这也是默认的属性,如果什么都不设置就是它在起作用

UIViewContentModeScaleToFill,

//图片拉伸至完全显示在UIImageView里面为止(图片不会变形)

UIViewContentModeScaleAspectFit,

//图片拉伸至图片的的宽度或者高度等于UIImageView的宽度或者高度为止.看图片的宽高哪一边最接近UIImageView的宽高,一个属性相等后另一个就停止拉伸.

UIViewContentModeScaleAspectFill,

//调用setNeedsDisplay 方法时,就会重新渲染图片

//下面的属性都是不会拉伸图片的

UIViewContentModeRedraw,

//中间模式

UIViewContentModeCenter,

//顶部

UIViewContentModeTop,

//底部

UIViewContentModeBottom,

//左边

UIViewContentModeLeft,

//右边

UIViewContentModeRight,

//左上

UIViewContentModeTopLeft,

//右上

UIViewContentModeTopRight,

//左下

UIViewContentModeBottomLeft,

//右下

UIViewContentModeBottomRight,

};

经过测试 UIViewContentModeScaleAspectFill 可以初步实现我们的需求

imageView_1.contentMode =UIViewContentModeScaleAspectFill;

imageView_2.contentMode =UIViewContentModeScaleAspectFill;

如图:

screen_2.png

此时发现,虽然图片没有变形,但是图片已经超出了我们imageView控件的大小,为了解决这一问题就需要在加上一句话:

imageView_1.clipsToBounds = YES; //超出容器范围的切除掉

imageView_2.clipsToBounds = YES;

如图:

screen_3.png

这是我们就解决了imageView显示图片变形失真的问题了。

android imageview图片失真,imageView 图片变形失真相关推荐

  1. Android 心形图片心形ImageView、带边框的的心形图片和圆形图片

    源码地址:心形图片.心形ImageView.圆形图片.圆形ImageView 实际效果如下: 一.思路 1.图片尺寸:加载的图片尺寸不会完全统一,可以是正方形,长方形等,这里不需要考虑正方形,因为一般 ...

  2. Android 网络图片浏览器( ImageView )【网络访问、线程、handler(消息处理器)、Internet权限、Get请求、输入流转图片】

    源码 [工程文件]:https://gitee.com/lwx001/ImageView 目   录 运行截图 activity_main.xml MainActivity.java AndroidM ...

  3. Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性

    本文转载自[Android ImageView的scaleType(图片比例类型)属性与adjustViewBounds(调整视图边界)属性]并做了排版的修改(http://www.cnblogs.c ...

  4. android 实现异步加载图片,Android中ImageView异步加载图片类

    本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...

  5. android xml图片缩放,Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码...

    概述:通过自定义ImageView控件,在xml布局里面调用自定的组件实现图片的缩放. /** * 自定义的ImageView控制,可对图片进行多点触控缩放和拖动 * * @author qiuwan ...

  6. android访问图库,android通过访问相册获取图片并展示在ImageView中

    第一步:添加相应的权限以及属性: ①在manifest中设置权限 ②在中设置相应属性,这一步很关键,解决了我在这一方面最后的一个有关deny的权限问题 android:requestLegacyExt ...

  7. android通过访问相册获取图片并展示在ImageView中

    第一步:添加相应的权限以及属性: ①在manifest中设置权限 <uses-feature android:name="android.hardware.camera" / ...

  8. android 图片锯齿,在Android上禁用消除锯齿Imageview

    我在图像查看中显示96x96像素的艺术精灵,无法应用消除锯齿(或至少某种形式的插值,如果它不是抗锯齿),这破坏了精灵的尖锐边缘.在Android上禁用消除锯齿Imageview 这怎么办?我已经尝试了 ...

  9. android 图片长宽比例缩放,关于android:如何在ImageView中缩放图像以保持纵横比

    在Android中,我将ImageView的layout_width定义为fill_parent(占用手机的整个宽度). 如果我放入ImageView的图像大于layout_width,Android ...

最新文章

  1. springboot mybatis 项目框架源码 shiro 集成代码生成器 ehcache缓存
  2. Backup and Restore in SharePoint 2010
  3. 【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )
  4. 【Docker系列教程之一】docker入门
  5. win server 缓冲区队列不足_有赞延迟队列设计
  6. android手机连接PC后怎样切换为U 盘模式
  7. leetcode - Best Time to Buy and Sell Stock Ⅱ
  8. SwiftUI实战三:创建List视图和导航Navigation
  9. LFSR:线性反馈移位寄存器及其应用
  10. NANK南卡降噪耳机和小米蓝牙耳机哪个好?谁更值得入手?
  11. 8g内存和16g内存区别 mac_内存不重要?8G内存和16G内存的M1 MacBook Pro性能对比
  12. Pandas:利用Styler对象设置Series、Dataframe在Jupyter Notebook中的输出样式(2)——内置样式
  13. 对象数组中根据某个属性名的值相同,求某一项的和。
  14. 转载:联想小新进入BIOS方法
  15. 【百度分享】BZFS—一种透明压缩文件系统
  16. 学生专用计算机怎样开启关机,win7电脑怎么用命令设置自动关机
  17. Android_Message里面彩信图片的压缩方法
  18. 如何修复SSD硬盘,如何给SanDisk SSD开卡
  19. 测试开发之Python核心笔记(15):迭代器与生成器
  20. 基于android的计步器文档,基于Android的计步器(Pedometer)的讲解(六)

热门文章

  1. java non-heap_成都汇智动力-Java内存相关
  2. PHP笔记-laravel中使用jquery及jquery.niceScroll.js
  3. ECMAScript 6-11新特性(笔记)
  4. Ubuntu运行vmware时报错Vmware Unable to install all modules!Use shipped Linux kernel AIO access library解决。
  5. spring boot +vue用什么记录登录状态_2019年web前端Vue面试题总结
  6. UDS协议-0x10(诊断会话控制)
  7. 小白linux bash 学习前奏二 vi操作
  8. Word2013产生左侧书签以及转化成PDF时生成对应书签
  9. 做自己——鬼脚七自媒体第一季
  10. 手机号码归属地服务[转载]