mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-06 13:59:49 +02:00
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.
This commit is contained in:
54
app/src/main/java/CustomView/AspectRatioGifImageView.java
Normal file
54
app/src/main/java/CustomView/AspectRatioGifImageView.java
Normal file
@@ -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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user