Show the subsamling image only when it's fully loaded.

captchafix
Florens Douwes 11 years ago
parent df375c1034
commit c9ee07da24
  1. 14
      Clover/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.java
  2. 24
      Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailImageView.java

@ -183,6 +183,8 @@ public class SubsamplingScaleImageView extends View {
private Paint bitmapPaint;
private Paint debugPaint;
private InitedCallback initCallback;
public SubsamplingScaleImageView(Context context, AttributeSet attr) {
super(context, attr);
setMinimumDpi(160);
@ -221,6 +223,10 @@ public class SubsamplingScaleImageView extends View {
this(context, null);
}
public void setInitCallback(InitedCallback initCallback) {
this.initCallback = initCallback;
}
/**
* Sets the image orientation. It's best to call this before setting the image file or asset, because it may waste
* loading of tiles. However, this can be freely called at any time.
@ -1529,7 +1535,9 @@ public class SubsamplingScaleImageView extends View {
* skip their own rendering until the base layer (and its scale and translate) are known.
*/
protected void onImageReady() {
if (initCallback != null) {
initCallback.onInit();
}
}
/**
@ -1822,4 +1830,8 @@ public class SubsamplingScaleImageView extends View {
}
}
public interface InitedCallback {
public void onInit();
}
}

@ -121,7 +121,6 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener
@Override
public void onProgress(long downloaded, long total, boolean done) {
if (done) {
callback.setProgress(false);
callback.setLinearProgress(0, 0, true);
thumbnailNeeded = false;
} else {
@ -131,11 +130,25 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener
@Override
public void onSuccess(File file) {
SubsamplingScaleImageView image = new SubsamplingScaleImageView(getContext());
final SubsamplingScaleImageView image = new SubsamplingScaleImageView(getContext());
image.setImageFile(file.getAbsolutePath());
image.setOnClickListener(ThumbnailImageView.this);
setView(image, false);
addView(image);
image.setInitCallback(new SubsamplingScaleImageView.InitedCallback() {
@Override
public void onInit() {
Utils.runOnUiThread(new Runnable() {
@Override
public void run() {
removeAllViews();
addView(image);
callback.setProgress(false);
}
});
}
});
}
@Override
@ -247,11 +260,6 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener
});
}
@Override
public void setView(View view, boolean animation) {
super.setView(view, animation && !thumbnailNeeded);
}
public VideoView getVideoView() {
return videoView;
}

Loading…
Cancel
Save