AsyncDrawable fix no dimensions bug

This commit is contained in:
Dimitry Ivanov 2018-11-26 18:20:05 +03:00
parent b6b360b736
commit ca231ab2d8

View File

@ -23,6 +23,9 @@ public class AsyncDrawable extends Drawable {
private int canvasWidth;
private float textSize;
// @since 2.0.1 for use-cases when image is loaded faster than span is drawn and knows canvas width
private boolean waitingForDemensions;
/**
* @since 1.0.1
*/
@ -88,6 +91,19 @@ public class AsyncDrawable extends Drawable {
this.result = result;
this.result.setCallback(callback);
initBounds();
}
private void initBounds() {
if (canvasWidth == 0) {
// we still have no bounds - wait for them
waitingForDemensions = true;
return;
}
waitingForDemensions = false;
final Rect bounds = resolveBounds();
result.setBounds(bounds);
setBounds(bounds);
@ -102,6 +118,10 @@ public class AsyncDrawable extends Drawable {
public void initWithKnownDimensions(int width, float textSize) {
this.canvasWidth = width;
this.textSize = textSize;
if (waitingForDemensions) {
initBounds();
}
}
@Override