单击按钮即可开始图像幻灯片放映

时间:2011-11-08 10:35:23

标签: android slideshow android-intent

我编写了代码来从SDCard中选择一个文件夹,其路径以Uri / string的形式返回。我还检查返回的文件夹是否包含图像(以.jpg结尾)。现在我有了路径,我想在按钮的onClick上启动一个新活动(使用意图并在intent.putextras中传递uri的值),以便下一个活动像幻灯片一样一个接一个地显示图像(使用定时器)。请给我一个基本的概述,看看我是如何做到这一点的。我遵循了哪些步骤?

这是我的Logcat错误:

11-10 17:23:30.500: DEBUG/dalvikvm(15114): GC_EXTERNAL_ALLOC freed 2K, 49% free 2773K/5379K, external 11850K/13302K, paused 55ms  
11-10 17:23:30.510: ERROR/dalvikvm-heap(15114): 3840000-byte external allocation too large for this process.  
11-10 17:23:30.510: ERROR/dalvikvm(15114): Out of memory: Heap Size=5379KB, Allocated=2774KB, Bitmap Size=11850KB, Limit=20480KB  
11-10 17:23:30.510: ERROR/dalvikvm(15114): Trim info: Footprint=5379KB, Allowed Footprint=5379KB, Trimmed=908KB  
11-10 17:23:30.510: ERROR/GraphicsJNI(15114): VM won't let us allocate 3840000 bytes  
11-10 17:23:30.550: DEBUG/dalvikvm(15114): GC_FOR_MALLOC freed <1K, 49% free 2773K/5379K, external 11850K/13302K, paused 34ms  
11-10 17:23:30.550: DEBUG/skia(15114): --- decoder->decode returned false  
11-10 17:23:30.550: DEBUG/AndroidRuntime(15114): Shutting down VM  
11-10 17:23:30.550: WARN/dalvikvm(15114): threadid=1: thread exiting with uncaught exception (group=0x400205a0)    
11-10 17:23:30.550: ERROR/AndroidRuntime(15114): FATAL EXCEPTION: main  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114): java.lang.OutOfMemoryError: bitmap size exceeds VM budget(Heap Size=7299KB, Allocated=2773KB, Bitmap Size=11850KB)
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.graphics.BitmapFactory.nativeDecodeFile(Native Method)
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:355)
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:433)
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at com.androidworkz.imageviewflipper.ImageViewFlipper$MyGestureDetector.onFling(ImageViewFlipper.java:357)
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.view.GestureDetector.onTouchEvent(GestureDetector.java:568)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at com.androidworkz.imageviewflipper.ImageViewFlipper.onTouchEvent(ImageViewFlipper.java:428)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.app.Activity.dispatchTouchEvent(Activity.java:2217)    
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1747)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2336)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1976)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.os.Handler.dispatchMessage(Handler.java:99)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.os.Looper.loop(Looper.java:143)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at android.app.ActivityThread.main(ActivityThread.java:4277)   
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at java.lang.reflect.Method.invokeNative(Native Method)   
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at java.lang.reflect.Method.invoke(Method.java:507)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)  
11-10 17:23:30.550: ERROR/AndroidRuntime(15114):     at dalvik.system.NativeStart.main(Native Method)  
11-10 17:23:30.570: WARN/ActivityManager(123):    

强制完成活动com.androidworkz.imageviewflipper / .ImageViewFlipper

1 个答案:

答案 0 :(得分:1)

您好,因为您已经描述了要制作幻灯片,那么您必须使用Android ViewFlipper来制作幻灯片。请在制作任何事物之前检查此参考链接在Android中的图像幻灯片放映。

链接一用于最好的东西来搜索SD卡几乎所有类型的图像路径但是使用这个例子你将不得不处理android中的内存耗尽所以要小心使用它。在那个例子中的图像是使用滑动滑动并在滑动更长时间后,由于内存问题,它将强制关闭。

1。Link One

在上面的例子中他们正在使用

 viewFlipper.showNext();
 viewFlipper.showPrevious();

因此,您必须使用自己的逻辑将ViewFlipper设置为Flip as Some Regular Interval 对于立即制作幻灯片放映使用计时器制作ViewFlipper接下来一段时间之后,您可以使用线程来制作ViewFlipper。

您还可以在从一个图像到另一个图像的更改之间应用动画。 这是android中的动画使用链接:Click here Link Two

你也可能面临记忆问题因此,请阅读本文:Link Three