Fix NullPointerException on RingView

pull/114/merge
Alinson S. Xavier 9 years ago
parent 53911fa410
commit 7ce1988d2e

@ -27,6 +27,7 @@ import android.graphics.Paint;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode; import android.graphics.PorterDuffXfermode;
import android.graphics.RectF; import android.graphics.RectF;
import android.support.annotation.Nullable;
import android.text.TextPaint; import android.text.TextPaint;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
@ -57,8 +58,10 @@ public class RingView extends View
private float textSize; private float textSize;
private boolean enableFontAwesome; private boolean enableFontAwesome;
@Nullable
private Bitmap drawingCache; private Bitmap drawingCache;
private Canvas cacheCanvas; private Canvas cacheCanvas;
private boolean isTransparencyEnabled; private boolean isTransparencyEnabled;
public RingView(Context context) public RingView(Context context)
@ -175,12 +178,14 @@ public class RingView extends View
{ {
super.onSizeChanged(w, h, oldw, oldh); super.onSizeChanged(w, h, oldw, oldh);
if(isTransparencyEnabled) if(isTransparencyEnabled) reallocateCache();
{ }
if (drawingCache != null) drawingCache.recycle();
drawingCache = Bitmap.createBitmap(diameter, diameter, Bitmap.Config.ARGB_8888); private void reallocateCache()
cacheCanvas = new Canvas(drawingCache); {
} if (drawingCache != null) drawingCache.recycle();
drawingCache = Bitmap.createBitmap(diameter, diameter, Bitmap.Config.ARGB_8888);
cacheCanvas = new Canvas(drawingCache);
} }
@Override @Override
@ -191,6 +196,7 @@ public class RingView extends View
if(isTransparencyEnabled) if(isTransparencyEnabled)
{ {
if(drawingCache == null) reallocateCache();
activeCanvas = cacheCanvas; activeCanvas = cacheCanvas;
drawingCache.eraseColor(Color.TRANSPARENT); drawingCache.eraseColor(Color.TRANSPARENT);
} }

Loading…
Cancel
Save