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 bitmapPaint;
private Paint debugPaint; private Paint debugPaint;
private InitedCallback initCallback;
public SubsamplingScaleImageView(Context context, AttributeSet attr) { public SubsamplingScaleImageView(Context context, AttributeSet attr) {
super(context, attr); super(context, attr);
setMinimumDpi(160); setMinimumDpi(160);
@ -221,6 +223,10 @@ public class SubsamplingScaleImageView extends View {
this(context, null); 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 * 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. * 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. * skip their own rendering until the base layer (and its scale and translate) are known.
*/ */
protected void onImageReady() { 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 @Override
public void onProgress(long downloaded, long total, boolean done) { public void onProgress(long downloaded, long total, boolean done) {
if (done) { if (done) {
callback.setProgress(false);
callback.setLinearProgress(0, 0, true); callback.setLinearProgress(0, 0, true);
thumbnailNeeded = false; thumbnailNeeded = false;
} else { } else {
@ -131,11 +130,25 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener
@Override @Override
public void onSuccess(File file) { public void onSuccess(File file) {
SubsamplingScaleImageView image = new SubsamplingScaleImageView(getContext()); final SubsamplingScaleImageView image = new SubsamplingScaleImageView(getContext());
image.setImageFile(file.getAbsolutePath()); image.setImageFile(file.getAbsolutePath());
image.setOnClickListener(ThumbnailImageView.this); 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 @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() { public VideoView getVideoView() {
return videoView; return videoView;
} }

Loading…
Cancel
Save