2011-09-27 110 views
0

我正在使用此代碼。訪問特定文件夾以獲取圖像列表並將其添加到ViewFlipper。但我有這個問題,我不能將它添加到ViewFlipper.So請如果任何人知道如何解決這個問題,我會感激他的幫助。對不起,我的英語不好。如何在ViewFlipper中添加動態圖像?

public ImageView[] imageView; 
byte[] mByte = null;    

public BufferedInputStream mBufferedInputStream; 
Bitmap[] bMap; 
File dir=new File("/sdcard/image folder"); 
     System.out.println("Dir is"+dir); 
     String[] file_name = dir.list(new FilenameFilter() { 

      @Override 
      public boolean accept(File dir, String name) { 
       // TODO Auto-generated method stub 
       if(new File(dir,name).isDirectory()) 
       return true; 
       return name.toLowerCase().endsWith(".jpg"); 
      } 
     }); 
     for(String singleFile : file_name){ 
      System.out.println("---------->"+dir.toString()+"/"+singleFile); 
      try { 
       FileInputStream  mFileInputStream = new FileInputStream(dir+"/"+singleFile); 
       mBufferedInputStream = new BufferedInputStream(mFileInputStream); 
       mByte = new byte[mBufferedInputStream.available()+(16*1024)]; 
       mBufferedInputStream.read(mByte); 
       bMap = new Bitmap[file_name.length]; 
       bMap[position] = BitmapFactory.decodeByteArray(mByte, 0, mByte.length); 
       imageView[file_name.length] = new ImageView(this); 
       imageView[position].setImageBitmap(bMap[position]); 
       mViewFlipper.addView(imageView[position]); 
       bMap[position].recycle(); 
       position++; 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } 

     mViewFlipper.startFlipping(); 
     mViewFlipper.setOnTouchListener(this);  

在logcat的:

09-27 19:27:17.490: WARN/System.err(9910): java.lang.NullPointerException 
09-27 19:27:17.490: WARN/System.err(9910):  at  com.android.SD_Card_Img_Reader.SD_CardImageReaderActivity.onCreate(SD_CardImageReaderActivity.java:76) 
09-27 19:27:17.501: WARN/System.err(9910):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
09-27 19:27:17.501: WARN/System.err(9910):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
09-27 19:27:17.501: WARN/System.err(9910):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
09-27 19:27:17.511: WARN/System.err(9910):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
09-27 19:27:17.511: WARN/System.err(9910):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
09-27 19:27:17.541: WARN/System.err(9910):  at android.os.Handler.dispatchMessage(Handler.java:99) 
09-27 19:27:17.584: WARN/System.err(9910):  at android.os.Looper.loop(Looper.java:123) 
09-27 19:27:17.584: WARN/System.err(9910):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
09-27 19:27:17.584: WARN/System.err(9910):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-27 19:27:17.584: WARN/System.err(9910):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-27 19:27:17.584: WARN/System.err(9910):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
09-27 19:27:17.584: WARN/System.err(9910):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
09-27 19:27:17.590: WARN/System.err(9910):  at dalvik.system.NativeStart.main(Native Method) 
09-27 19:27:17.590: INFO/System.out(9910): ---------->/sdcard/image folder/darkred.jpg 
09-27 19:27:17.590: INFO/global(9910): Default buffer size used in BufferedInputStream constructor. It would be better to be explicit if an 8k buffer is required. 
09-27 19:27:17.721: DEBUG/dalvikvm(9910): GC_EXTERNAL_ALLOC freed 406 objects/125952 bytes in 125ms 
09-27 19:27:18.571: WARN/System.err(9910): java.lang.NullPointerException 
09-27 19:27:18.651: WARN/System.err(9910):  at com.android.SD_Card_Img_Reader.SD_CardImageReaderActivity.onCreate(SD_CardImageReaderActivity.java:76) 
09-27 19:27:18.651: WARN/System.err(9910):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
09-27 19:27:18.771: WARN/System.err(9910):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
09-27 19:27:18.771: WARN/System.err(9910):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
09-27 19:27:18.771: WARN/System.err(9910):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
09-27 19:27:18.771: WARN/System.err(9910):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
09-27 19:27:18.771: WARN/System.err(9910):  at android.os.Handler.dispatchMessage(Handler.java:99) 
09-27 19:27:18.771: WARN/System.err(9910):  at android.os.Looper.loop(Looper.java:123) 
09-27 19:27:18.771: WARN/System.err(9910):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
09-27 19:27:18.771: WARN/System.err(9910):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-27 19:27:18.771: WARN/System.err(9910):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-27 19:27:18.771: WARN/System.err(9910):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
09-27 19:27:18.771: WARN/System.err(9910):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
09-27 19:27:18.771: WARN/System.err(9910):  at dalvik.system.NativeStart.main(Native Method) 
+0

什麼是在線76? – Egor

+0

請告訴我們什麼是76線?這是你的onCreate()方法, – Houcine

+0

對不起,我不明白!哪一行是你提到的。 – raja

回答

0

ViewFlipper只允許你每次觀看一個孩子。在這個孩子裏面,你可以添加儘可能多的圖像。您可能需要添加一個LinearLayout並開始在其中添加圖像。

+0

抱歉Mr.Bobbake我無法理解。如何實現到LinearLayout。所以請給我一個示例代碼。我也將圖像添加到像你說的線性佈局。但是在視圖中沒有獲得圖像。所以請幫助我。我希望你能理解我說的話。謝謝你' – raja