0

I'm trying to use KenBurnsView library into my ImageView to get the Ken Burn's effect. But it returns null pointer exception each time I want to load an image from a url using Image Loader.

Here is the stack trace:

06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ java.lang.NullPointerException
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.MathUtils.getRectRatio(MathUtils.java:44)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.RandomTransitionGenerator.generateRandomRect(RandomTransitionGenerator.java:93)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.RandomTransitionGenerator.generateNextTransition(RandomTransitionGenerator.java:64)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.KenBurnsView.startNewTransition(KenBurnsView.java:207)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.KenBurnsView.handleImageChange(KenBurnsView.java:280)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.flaviofaria.kenburnsview.KenBurnsView.setImageDrawable(KenBurnsView.java:140)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.imageaware.ImageViewAware.setImageDrawable(ImageViewAware.java:171)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:252)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:357)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.nostra13.universalimageloader.core.ImageLoader.displayImage(ImageLoader.java:335)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$2.onResponse(HomeFragment.java:513)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$2.onResponse(HomeFragment.java:450)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.utils.GsonRequest.deliverResponse(GsonRequest.java:106)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$1.deliverResponse(HomeFragment.java:425)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.kedai.baucar.fragment.HomeFragment$1.deliverResponse(HomeFragment.java:420)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:733)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.os.Looper.loop(Looper.java:136)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5001)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:515)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
06-20 16:05:57.485    7442-7442/com.kedai.baucar W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
06-20 16:05:57.495    7442-7442/com.kedai.baucar W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)

Also, I've found a similar question here, but this one instead loading from a url, it loads on run-time.

I've tried the solution by adding updateDrawableBounds(); inside setImageResource(int resId) method, still couldn't make it.

Has anyone ever experienced this before? How do you fix this?

Community
  • 1
  • 1
emen
  • 6,050
  • 11
  • 57
  • 94

3 Answers3

1

Try switching the position of "super" call and updateDrawableBounds() in your overriden setImageResource()/setImageDrawable() method.

Behnam
  • 6,510
  • 6
  • 35
  • 65
  • Hah! my bad. It should be put in `setImageDrawable()` not `setImageResource()`. It works now. Thanks! – emen Jun 20 '14 at 09:34
  • I guess all setters should have the update method, if someone wants to load on run-time. – emen Jun 20 '14 at 09:36
1

I'm the author of the library and I just pushed a few changes that I believe that will fix your problem. Please download the latest version (v1.0.3) and let me know if it happens again.

Flávio Faria
  • 6,575
  • 3
  • 39
  • 59
0

It looks like an issue in library. For more details check this answer (with solution): KenBurnsView how to set image resource?

Community
  • 1
  • 1
Nickolai Astashonok
  • 2,878
  • 3
  • 20
  • 23