syedowaisali / crystal-range-seekbar

537 stars 164 forks source link

NullPointerException at using Bitmaps in thumbs #45

Closed comm1x closed 6 years ago

comm1x commented 7 years ago

Have a code

Bitmap b = Bitmap.createBitmap(30, 30, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
Paint p = new Paint();
p.setColor(getResources().getColor(R.color.accent));
c.drawCircle(15, 15, 15, p);

bar.setLeftThumbBitmap(b);
bar.setRightThumbBitmap(b);
bar.apply();

And after try to move thumbs immediatly get exception:

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.isRecycled()' on a null object reference
    at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1269)
    at android.graphics.Canvas.drawBitmap(Canvas.java:1325)
    at com.crystal.crystalrangeseekbar.widgets.CrystalRangeSeekbar.drawRightThumbWithImage(CrystalRangeSeekbar.java:653)
    at com.crystal.crystalrangeseekbar.widgets.CrystalRangeSeekbar.setupRightThumb(CrystalRangeSeekbar.java:641)
    at com.crystal.crystalrangeseekbar.widgets.CrystalRangeSeekbar.onDraw(CrystalRangeSeekbar.java:899)
    at android.view.View.draw(View.java:16178)
    at android.view.View.updateDisplayListIfDirty(View.java:15174)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
    at android.view.View.updateDisplayListIfDirty(View.java:15134)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
    at android.view.View.updateDisplayListIfDirty(View.java:15134)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
    at android.view.View.updateDisplayListIfDirty(View.java:15134)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
    at android.view.View.updateDisplayListIfDirty(View.java:15134)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
    at android.view.View.updateDisplayListIfDirty(View.java:15134)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
    at android.view.View.updateDisplayListIfDirty(View.java:15134)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3593)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3573)
    at android.view.View.updateDisplayListIfDirty(View.java:15134)
    at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
    at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
    at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
    at android.view.ViewRootImpl.draw(ViewRootImpl.java:2615)
    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
    at android.view.Choreographer.doCallbacks(Choreographer.java:670)
    at android.view.Choreographer.doFrame(Choreographer.java:606)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

So I cant use custom bitmaps to thumbs (but I simply want to replace so huge f*cking thumbs, why do you not implement size changing?!, argh...).

comm1x commented 6 years ago

Still no customizable markers?

comm1x commented 6 years ago

Still nothing?

muthukrishnan24 commented 6 years ago

i had the same problem, i set the Bitmap for highlight also, which solved the problem bar.setLeftThumbHighlightBitmap(b); bar.setRightThumbHighlightBitmap(b);

ChetnaNakum commented 6 years ago

bar.setLeftThumbHighlightBitmap(b); bar.setRightThumbHighlightBitmap(b);

It does not work.

comm1x commented 6 years ago

Wow, just closed, perfect.