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?

4

3 回答 3

1

尝试在覆盖的 setImageResource()/setImageDrawable() 方法中切换“super”调用和 updateDrawableBounds() 的位置。

于 2014-06-20T09:19:03.430 回答
1

我是图书馆的作者,我只是推动了一些我相信可以解决您的问题的更改。请下载最新版本(v1.0.3),如果再次发生,请告诉我。

于 2014-06-20T21:39:40.663 回答
0

它看起来像图书馆中的一个问题。有关更多详细信息,请查看此答案(带有解决方案): KenBurnsView 如何设置图像资源?

于 2014-06-20T09:10:05.967 回答