9_Android的图片视图(ImageView)(附Demo)
目录
ImageView的属性:
Demo地址:https://github.com/zGuangYuan/Androidstudio_example
备注:加载第三方网络ImageVIew
1.图片视图(ImageView)的基本概念
什么是ImageView?
- ImageView主要是用来显示图片的控件(显示在Activity上),可以对图片进行放大、缩小和旋转的功能。
使用图片的来源?
可以有很多种,例如来自res、asset文件夹,可以来源网络,SD卡,只要是图片都可以摆放在Activity上
2.
用实例演示,如何把一张图片放置在Activity界面上:
- 第一步:新建一个Android应用程,命名为:S06_ImageView,创建空白的BlankActivity.
- 打开布局文件,用LinearLayout(线性布局),创建一个<ImageView/>控件标签
- 说明上面图片的来源,图片是我保存在桌面上的一张图片名为:peppapig.png(注意不能用大写字母)的图片 ,我把它复制在res文件夹下的drawable-hdpi(类似的几个是区分辨率的),我们知道,凡是放在res文件夹下的文件,在gen文件夹下的R.java都有一个Id,所以我们可以通过Id去调用这个图片。
- 在布局文件如何调用这个图片?
- 在代码中如何调用显示这个图片?在MainActivity的onCreate( )方法中使用<ImageView/>控件标签用对象表示:
- 运行应用程序,看一下在Activity界面显示的效果:
可见,在界面显示一个图片很简单,但是你想控制他的大小就会复杂一点,了解了如何使用,接下来我们讨论如何对我们的图片进行编辑。
神奇的Scale Type
属性:
我们通过实例来演示这些属性的意义:
Scale Type的fitCenter属性:
我们修改xml文件的ImageView并增添另一张图片:
- 关于像素密度(dpi)的计算:点我跳转
- 也可以直接在启动模拟器的界面看
然后根据公式:px=dp∗(dpi/160),计算得,1dp = 1.5px,所以我们上面设置100dp = 150px.
- 看一看xml可是界面上的显示:
1.fitCenter属性:
那么把ScaleType设置成fitCenter的含义是什么呢?
我们先看一下图片的分辨率,小猪的分辨率为:
安卓图标的分辨率为:
细心就可以发现小猪的实际分辨率(768*760)比安卓图标(72*72)的分辨率大很多,但是在Activity上所占的像素都是150*150像素(px),这也正是fitCenter参数的作用:
如果ImageView的ScaleType设置成fitCenter,一张图片如果比设置成的ImageView大(100dp*100dp=150*150像素),就把这张图片等比例缩放,缩放到刚刚好能放在这个ImageView里面,并且居中显示。如果再细心一点可以发现小猪的背景色楼出来一点点,上下有两条红边,这个是怎么回事呢?
- 详情看图,所以小红边就是没有被占的1.5*150像素的背景。
如果比设置的ImageView小,那么就等比例放大,因为安卓图标正好是正方形,所以缩放成也是正方形,然后再居中显示。
- 那么fitStart属性就是把图片等比例缩放,靠上显示。
- 那么fitEnd属性就是把图片等比例缩放,靠下显示。
2.center属性:
如果把属性设置为center, 一张图片如果比设置成的ImageView大,他就直接在图片截图你所设置图片的大小(100*100dp)在中间截取出像素大小,例如下图所示,只截取一部分片段:
在模拟机显示如下:
如果比设置的ImageView小,那么就原像素居中显示。
3.centerInside属性
效果图如下,功能是一张图片如果比设置成的ImageView大,就等比例缩小到刚好能放进去,如果比ImageView小,那么就原像素居中显示。
4.centerCrop属性
一张图片如果比mageView大,还是等比例缩放,但是是短边和ImageView缩放成相等,所以我们就看不到红色背景红边了,所以无论如何缩放,都要把这个imageView填满,不会留出空位。
一张图片如果比mageView小,就等比例放大,然后居中显示。效果如下图:
![]()
已上我们是在xml使用<ImageView/>进行控件管理,那我们如何在代码中管理图片的格式呢?
首先在MainActivity获取 <ImageView/>标签的对象,然后调用对象的方法:
运行应用程序可以看到效果和我们在Xml布局文件设置使用一样的:
说到这里,那到底ImageView总结来说,就是当你的图片像素和ImageView像素不匹配的时候,你如何去设置图片的一些属性。
5.使用第三方库加载网络图片(Glide)
使用第三方库加载网络图片:Android studio
1.新建一个空的Activity(Blank Activity):
在MainActivity定义一个按钮跳转到这个ImageViewActivity里,并绑定监听器:
绑定监听器:
上官网:GIthub:点我跳转
注意事项,同步不成功的,这一步一定要注意了,检查一下Android studio的版本号:
如何使用,简单的一个例子:
例子:
注意添加网络权限:
运行程序:
附录:
本博文Demo下载:https://github.com/zGuangYuan/Android-
github的用法:点我查看