Make thumbnails load faster by loading smaller Thumbnails

GitHub: https://github.com/wikimedia/apps-android-commons/pull/25
Change-Id: I0af540a1d84348a7a3e67c6037cd509b88b84b21
This commit is contained in:
YuviPanda 2013-07-10 20:44:59 +00:00 committed by SuchABot
parent 35736733c3
commit 81e79cf096
3 changed files with 22 additions and 0 deletions

View file

@ -16,6 +16,7 @@
package org.wikimedia.commons;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.BitmapDrawable;
import android.text.TextUtils;
import android.util.AttributeSet;
@ -41,12 +42,16 @@ public class MediaWikiImageView extends ImageView {
private View loadingView;
private boolean isThumbnail;
public MediaWikiImageView(Context context) {
this(context, null);
}
public MediaWikiImageView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
TypedArray actualAttrs = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MediaWikiImageView, 0, 0);
isThumbnail = actualAttrs.getBoolean(0, false);
}
public MediaWikiImageView(Context context, AttributeSet attrs, int defStyle) {
@ -84,6 +89,15 @@ public class MediaWikiImageView extends ImageView {
return;
}
// Do not count for density when loading thumbnails.
// FIXME: Use another 'algorithm' that doesn't punish low res devices
if(isThumbnail) {
float dpFactor = Math.max(getResources().getDisplayMetrics().density, 1.0f);
width = (int) (width / dpFactor);
height = (int) (height / dpFactor);
}
final String mUrl;
if(tryOriginal) {
mUrl = mMedia.getImageUrl();