2013-06-19 88 views
0

我想要檢索我的設備在其Gallery中有多少圖像的int值。我將稍後使用它來循環並抓取圖像。getImageCount()總是返回1

private class ClickListener implements View.OnClickListener { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(intent, CAMERA); 
     } 

    } 

    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == CAMERA) { 
      if (resultCode == Activity.RESULT_OK) { 
       Bundle extras = data.getExtras(); 
       bmp = (Bitmap) extras.get("data"); 
       MediaStore.Images.Media.insertImage(getContentResolver(), bmp, 
         "picture", "a picture"); 
       Log.v("HEY", "Your image should be in the gallery now");     
       Log.v("IMAGES", "Number of Images: " + getImageCount()); 
      } else if (resultCode == Activity.RESULT_CANCELED) { 
       Log.v("CANCELED", "The user has canceled the activity"); 
      } 
     } 

    } 

    public int getImageCount() { 
     File dir = new File(Environment.getExternalStorageDirectory() + "/Camera"); 
     File[] files = dir.listFiles(); 
     int numberOfImages = files.length; 
     return numberOfImages; 
    } 

然而logcat的被張貼這

06-19 18:24:41.380: V/HEY(5367): Your image should be in the gallery now 
06-19 18:24:41.380: V/IMAGES(5367): Number of Images: 1 

所以它告訴我有1個圖像時,圖像的實際數量是目前14.我必須失去了一些東西簡單,但我不能看見。任何幫助表示讚賞。

+0

如果您手動檢查目錄(通過adb或其他),您看到了什麼? – ninetwozero

+0

@ninetwozero好,如果我只是通過連接到我的電腦使用USB進入目錄有14個圖像。如果你的意思是別的,我不知道我知道如何檢查 –

+0

這就是我的意思。 :)嘗試'Log.d()':ing'Environment.getExternalStorageDirectory()+「/ Camera」 - 你會驚訝你會發現什麼魔法。 – ninetwozero

回答

1

明白了,來自@FoamyGuy的評論引發了一個想法。如果相機是我的DCIM裏面,那麼我就需要這個

File dir = new File(Environment.getExternalStorageDirectory() + "/Camera"); 

改變這種

File dir = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera"); 

這似乎是愚蠢的,因爲我以前從來沒有到指定的DCIM文件夾。這就是它,但我希望這可以幫助其他人。