可滚动显示图片的 ImageView —— PanningImageView
前言
参考这篇博文,在此基础上,做了些改进。比如,用 ValueAnimator 代替 ObjectAnimator, 代码更加简洁(在这种情况下,ValueAnimator 比 ObjectAnimator 更加方便,自定义控件就不自定义属性了)。此外,设置 Animator 的 RepeatMode 为 Reverse,不用如同博客里面的样子切换方向。最后,对各种尺寸的图片的支持。当不 panning 的时候,centerCrop 显示。
原理
简单来说,不断的改变 ImageView 的 Matrix。(所以要setScaleType(ScaleType.MATRIX);)使用 ValueAnimator 做节拍器。剩下的逻辑就是判断控件的尺寸和图像的尺寸,确定要不要滚动显示,并计算出scaleRatio、translateX、translateY。
效果图
源码
package com.sinaapp.myron.panningimageviewdemo;import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Matrix;
import android.util.AttributeSet;
import android.widget.ImageView;p
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
