9_Android的图片视图(ImageView)(附Demo)


目录

ImageView的属性:

 1.fitCenter属性:

 2.center属性:

3.centerInside属性

4.centerCrop属性 

5.使用第三方库加载网络图片(Glide)


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的用法:点我查看


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值