ImageView 加载图片方法
关于ImageView,常很容易混淆background 和 src 两个属性的特征:
(1)background通常指的都是背景,而src指的是内容。
(2)当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸。
代码用法设置:
一.设置ImageView的src:
1.image.setImageDrawable(getResources().getDrawable(R.drawable.vod_detail_actor_default));
2.
String path=Environment.getExternalStorageDirectory()+File.separator+”test.jpg”;
Bitmap bm = BitmapFactory.decodeFile(path);
image.setImageBitmap(bm);
3.image.setImageBitmap(BitmapFactory.decodeResource(page.getContext().getResources(), R.drawable.vod_detail_actor_default));
4.image.setImageResource(R.drawable.vod_detail_actor_default);
注:
setImageResource(id)会根据设备分辨率进行图片大小缩放适配。
源码中对该接口的注释:
在UI线程中处理bitmap,这可能造成主线程的延迟(如导致Activity启动延迟等情况)。
可以考虑使用setImageDrawable(Drawable)或setImageBitmap(Bitmap)代替。
setImageBitmap(BitmapFactory.decodeResource(res, id))大小需要手动调试。
setImageBitmap实际还是调用的setImageDrawable,但是强制setImageDrawble执行完整的setImageDrawable而不是做对象引用比较。setImageBitmap将Bitmap对象封装成Drawable对象,如果提供了完整的各种分辨率下的图片,两种方法没有区别。
另外:setImageDrawable(null)可以清除一个ImageView控件设置的图片。
因此综合来看,setImageDrawable是最省内存最高效的,如果担心图片过大或者图片过多影响内存和加载效率,可以自己解析图片然后通过调用setImageDrawable方法进行设置。
二.设置ImageView的background:
1.image.setBackground(getResources().getDrawable(R.drawable.vod_detail_actor_default));
2.image.setBackgroundResource(R.drawable.vod_detail_actor_default);
3.image.setBackgroundDrawable(getResources().getDrawable(R.drawable.vod_detail_actor_default));
在ImageView中,可以同时设置src和background属性(为了减少绘制,可以根据使用场景来设置相应属性);另外还有一个混淆的地方就是:android:scaleTyle这个属性(scaleType 只对src属性有效)如果需要对其进行不同图片的样式展示,就需要使用android:scaleTyle这个属性。
这里就只列出scaleType 相关值定义,实际效果相信大家本地实践就清楚了:
1.fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,但是图片的横纵比可能会发生改变;
2. fitStart:保持纵横比缩放图片,直到较长的边与Image的边长相等,缩放完成后将图片放在ImageView的左上角 ;
3.fitCenter:同上,缩放后放于中间;
4. fitEnd:同上,缩放后放于右下角;
5.center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理;
6. centerCrop:保持横纵比缩放图片,直到完全覆盖ImageView,可能会出现图片的显示不完全;
7. centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片;
8. matrix:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理
ImageView 加载图片方法相关推荐
- java imageview的使用_Android使用控件ImageView加载图片的方法
在 Android 加载图片一般使用 ImageView,这里简单记录一下这个控件的使用方法. 最简单就是在 xml 里直接使用 ImageView 标签: android:orientation=& ...
- android 加载网络bitmap图片 oom 简书_Android常见问题--ImageView加载图片OOM
开发中给ImageView加载一个高质量图片时,APP抛出了"Canvas: trying to draw too large(840253440bytes) bitmap."的异 ...
- Android 自定义ImageView加载图片
自定义imageview功能: 可以实现设置图片显示的时候,依据本身的比例进行图片的缩放 加载图片效果: 使用ImageLoader来加载 图片: 首先将ImageLoader的jar包关联到项目中 ...
- WinForm PictureBox加载图片方法
private void LoadImage_Click(object sender, EventArgs e) {// 从文件加载pictureBox1.Image = Image.FromFile ...
- ImageView加载图片 路径没问题,图片不显示
先说一下如何获得本地图片的路径. //点击图片事件 ib.setOnClickListener(new View.OnClickListener() {@Overridepublic void onC ...
- VC++几种加载图片方法的讨论(附源码)
目录 1.图片加载的相关说明 2.使用LoadBitmap来加载位图图片 3.使用CImage加载图片
- Flutter 加载图片方法
写文章的目的是记录一下学习Flutter过程,二是解惑一下网上流传的Flutter 加载图片其实好多是有坑的,即无法加载图片.画重点了:目前Flutter 加载2倍图,3倍图是没有好的方案的.要想加载 ...
- 图片墙瀑布式加载图片方法
像嘀咕网一样,图片和回复异步以图片墙的方式加载到页面的方法.需要引入附件中的包: 首先在photo.html中显示第一页的内容,图片墙的最外面要有如下div <div style="v ...
- html photoswipe原理,PhotoSwipe异步动态加载图片方法
在开发搜房家居M站的时候,搜房家居装修效果图相册展示效果需要用到PhotoSwipe插件来显示图片. 特点:1. 家居提供的接口,每次只能获取一张图片 2. 装修效果图的张数不限. 3. 从Photo ...
最新文章
- flask sqlalchemy踩坑记录
- 关于eclipse的注释和反注释的快捷键
- 1034 Head of a Gang(图的DFS解法) 擦边大法好
- 再探C#类与结构体究竟谁快——考虑栈变量、栈分配、64位整数、密封类
- java基础入门课后习题_《Java基础入门》课后习题及答案
- html获取鼠标按键数,鼠标在IE、Firefox和Opera点击键所对应的数字代码
- Scala声明变量、常用类型、条件表达式、块表达式、循环
- php推荐码生成,最新最全PHP生成制作验证码代码详解(推荐),验证码详解_PHP教程...
- ubuntu mysql 中午_Ubuntu更改MySQL字符集UTF-8,正确显示中文
- 基于ASA防火墙的SSL ×××配置
- MyEclipse 如何将 jar 包导入项目中
- 【转】3.1SharePoint服务器端对象模型 之 访问文件和文件夹(Part 1)
- 剑指offer:63-66记录
- call() , apply() ,bind()的用法
- Java DataInputStream skipBytes()方法与示例
- github系列(一) Windows环境下载与安装
- CAD arx常用函数
- win10计算机出现乱码,win10系统出现汉字乱码如何解决
- tomcat、APR模式
- OpenCV实现击中击不中变换和形态学细化
热门文章
- 亚航cookie加密 acw_sc_v3值
- 一个关于投资的顿悟,恍然大悟那种顿悟!
- C语言实现:三色球问题
- linux下用cat查看了一个文件, 导致界面乱码
- linux部署项目报错java.sql.SQLSyntaxErrorException: Table ‘xxx‘ doesn‘t exist
- 微信硬件蓝牙教程全集
- 把一个对象数组中的每个对象的属性名,从中文改成英文
- 第五十七篇:VS2015建立一个完整的c++工程:头文件.h 源文件.cpp,自动生成类
- 硬盘使用时间能改吗,怎么修改呢?
- Mysql学习笔记(6)分页查询、联合查询、DML语言