diff options
author | Alex Ning <chineseperson5@gmail.com> | 2018-12-22 02:42:24 +0000 |
---|---|---|
committer | Alex Ning <chineseperson5@gmail.com> | 2018-12-22 02:42:24 +0000 |
commit | 60b659e651b4d8e7d9ca26b17ba8990497022ed1 (patch) | |
tree | 354825f6ede0d3fac91c09b2195e8c225111090b /app/src/main/java/CustomView | |
parent | 33db4809e4376f91a566037f16694f8f19639e02 (diff) | |
download | infinity-for-reddit-60b659e651b4d8e7d9ca26b17ba8990497022ed1.tar infinity-for-reddit-60b659e651b4d8e7d9ca26b17ba8990497022ed1.tar.gz infinity-for-reddit-60b659e651b4d8e7d9ca26b17ba8990497022ed1.tar.bz2 infinity-for-reddit-60b659e651b4d8e7d9ca26b17ba8990497022ed1.tar.lz infinity-for-reddit-60b659e651b4d8e7d9ca26b17ba8990497022ed1.tar.xz infinity-for-reddit-60b659e651b4d8e7d9ca26b17ba8990497022ed1.tar.zst infinity-for-reddit-60b659e651b4d8e7d9ca26b17ba8990497022ed1.zip |
Use GifImageView to display all the images in order to prevent slow playing of the gifs. Extend GifImageView as AspectRatioGifImageView to retain the features of AspectRatioImageView.
Diffstat (limited to 'app/src/main/java/CustomView')
-rw-r--r-- | app/src/main/java/CustomView/AspectRatioGifImageView.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/app/src/main/java/CustomView/AspectRatioGifImageView.java b/app/src/main/java/CustomView/AspectRatioGifImageView.java new file mode 100644 index 00000000..379c8697 --- /dev/null +++ b/app/src/main/java/CustomView/AspectRatioGifImageView.java @@ -0,0 +1,54 @@ +package CustomView; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import com.felipecsl.gifimageview.library.GifImageView; + +public class AspectRatioGifImageView extends GifImageView { + private float ratio; + + public final float getRatio() { + return this.ratio; + } + + public final void setRatio(float var1) { + this.ratio = var1; + } + + private final void init(Context context, AttributeSet attrs) { + if (attrs != null) { + TypedArray a = context.obtainStyledAttributes(attrs, com.santalu.aspectratioimageview.R.styleable.AspectRatioImageView); + this.ratio = a.getFloat(com.santalu.aspectratioimageview.R.styleable.AspectRatioImageView_ari_ratio, 1.0F); + a.recycle(); + } + + } + + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int width = this.getMeasuredWidth(); + int height = this.getMeasuredHeight(); + if (width != 0 || height != 0) { + if (width > 0) { + height = (int)((float)width * this.ratio); + } else { + width = (int)((float)height / this.ratio); + } + + this.setMeasuredDimension(width, height); + } + } + + public AspectRatioGifImageView(Context context) { + super(context); + this.ratio = 1.0F; + } + + public AspectRatioGifImageView(Context context, AttributeSet attrs) { + super(context, attrs); + this.ratio = 1.0F; + this.init(context, attrs); + } +} |