Android【Fresco】 使用的详解(二)

上次说了Fresco的基本使用方式
这次来说说,Fresco的更多使用

这里写图片描述

设置缩放类型

实际图片,占位图,重试图和失败图都可以在 xml 中进行设置,用 fresco:actualImageScaleType 这样的属性。你也可以使用 GenericDraweeHierarchyBuilder 类在代码中进行设置。

其中可用的缩放类型如下



center  居中,无缩放。 
centerCrop  保持宽高比缩小或放大,使得两边都大于或等于显示边界,且宽或高契合显示边界。居中显示。 
focusCrop  同centerCrop, 但居中点不是中点,而是指定的某个点。 
centerInside  缩放图片使两边都在显示边界内,居中显示。和 fitCenter 不同,不会对图片进行放大。
如果图尺寸大于显示边界,则保持长宽比缩小图片。 
fitCenter  保持宽高比,缩小或者放大,使得图片完全显示在显示边界内,且宽或高契合显示边界。居中显示。 
fitStart  同上。但不居中,和显示边界左上对齐。 
fitEnd  同fitCenter, 但不居中,和显示边界右下对齐。 
fitXY  不保存宽高比,填充满显示边界。 
none  如要使用tile mode显示, 需要设置为``
one 

其中focusCrop,只要提供一个居中聚焦点,显示时就会尽量以此点为中心。
居中点是以相对方式给出的,比如 (0f, 0f) 是左上对齐显示,(1f, 1f) 是右下角对齐。相对坐标使得居中点位置和具体尺寸无关,这是非常实用的。
(0.5f, 0.5f) 的居中点位置和缩放类型 centerCrop 是等价的。
如果要使用此缩放模式,首先在 XML 中指定缩放模式:

fresco:actualImageScaleType="focusCrop"

在Java代码中,给你的图片指定居中点:

PointF focusPoint;
// your app populates the focus point
mSimpleDraweeView
    .getHierarchy()
    .setActualImageFocusPoint(focusPoint);

设置图片圆角,圆圈

圆角

圆角实际有2种呈现方式:
1.圆圈 - 设置roundAsCircle为true
2.圆角 - 设置roundedCornerRadius

设置圆角

可使用以下两种方式:
1.默认使用一个 shader 绘制圆角,但是仅仅占位图和所要显示的图有圆角效果。失败示意图和重下载示意图无圆角效果,且这种圆角方式不支持动画。

2.叠加一个solid color来绘制圆角。但是背景需要固定成指定的颜色。 在XML中指定 roundWithOverlayColor, 或者通过调用setOverlayColor来完成此设定。

XML中配置

SimpleDraweeView 支持如下几种圆角配置:

<com.facebook.drawee.view.SimpleDraweeView
   ...
   fresco:roundedCornerRadius="5dp"
   fresco:roundBottomLeft=
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android官方的ImageView控件并不支持直接加载GIF动画,但是可以通过使用第三方库来实现在XML布局中显示GIF动画的效果。 目前比较常用的第三方库有: 1. Glide:Glide是一个功能强大、灵活且易于使用图片加载库,支持GIF动画的加载和显示。 2. FrescoFresco是Facebook开源的一个功能强大、灵活且易于使用图片加载库,支持GIF动画的加载和显示。 下面以Glide为例,演示如何在XML布局中显示GIF动画: 1.在build.gradle文件中添加依赖: ``` dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' } ``` 2.在XML布局文件中使用如下代码: ``` <com.bumptech.glide.load.resource.gif.GifDrawableImageView android:id="@+id/iv_gif" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/my_gif"/> ``` 其中,com.bumptech.glide.load.resource.gif.GifDrawableImageView是Glide库自带的一个支持GIF动画的ImageView控件。 3.在Java代码中使用如下代码: ``` ImageView imageView = findViewById(R.id.iv_gif); Glide.with(this).asGif().load(R.drawable.my_gif).into(imageView); ``` 其中,asGif()方法表示要加载的是GIF动画,R.drawable.my_gif是要加载的GIF动画资源ID。 需要注意的是,使用Glide加载GIF动画时,需要添加asGif()方法来告诉Glide要加载的是GIF动画,否则默认情况下会当作静态图片处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值