2011-06-06 43 views
1

我使用gridview示例與圖像適配器來呈現圖像,區別在於這些圖像是從sdcard中的特定文件夾中檢索的,例如,/SD卡/圖像。 我正在emulator上測試這個應用程序。爲此,我首先在模擬器上配置了sdcard,然後通過eclipse下的DDMS在這個特定的文件夾上推送圖像。如何在設備上安裝應用程序時在包含圖像的SD卡中創建文件夾?

我想知道的是,當用戶在真實設備上安裝應用程序時,有可能在SD卡中創建包含圖像的圖像文件夾,並且如果可能的話,該怎麼做?

回答

0

我不知道有辦法做到這一點(這並不是說它不能完成)。 您絕對可以做的一件事就是在用戶第一次運行應用程序時創建文件夾,並將其填入圖像中。

0

您可以從資產圖像​​複製到SD卡

這種方法從資產文件夾複製到你的SD卡拷貝圖像。這裏Jaydeep的文件夾是可以在那個地方使用您的文件夾名稱,我對sdcard.You文件夾的名稱。

public void copyImagesInSdcard() 
{ 
assetManager = mycontext.getAssets(); 
assetManager1 = mycontext.getAssets(); 
System.out.println("In copyImagesInSdcard"); 
try 
{ 
    str1=assetManager.list(""); 
    ss=assetManager1.list(str1[1]); 
    InputStream is; 
    //System.out.println(ss[0]); 
    File file=new File(Environment.getExternalStorageDirectory().getPath() + "/Jaydeep's Folder"); 
    if(file.exists()!=true) 
    { 
    file.mkdir(); 
    } 
    else 
    { 
     if(file.length()==0) 
     { 
      file.mkdir(); 
     } 
     System.out.println("Length:"+file.length()); 
    } 

     for(int i=0;i<ss.length;i++) 
     { 
     is=assetManager1.open(str1[1] + "/" + ss[i]); 


     file=new File(Environment.getExternalStorageDirectory().getPath() + "/Jaydeep's Folder/" + ss[i]); 

     FileOutputStream out=new FileOutputStream(file); 
//Bitmap bi = BitmapDrawable.createFromStream(is,ss[0]); 


     byte b[] =new byte[4096]; 
     while (is.read(b) != -1) { 

      out.write(b); 
      } 
      out.close();   
     } 

} 
catch (IOException e) 
{ 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
} 
+0

感謝jaydeep的答覆。我有一個問題。如果子文件夾內有資源,如myapp/folder1/folder2/image /。圖像是在圖像文件夾內我將不得不添加像這樣的getAssets()中的圖像的路徑assetManager1 = mycontext.getAssets()。「/ myapp/folder1/folder2/image /」; – 2011-06-06 13:32:09

+0

我沒有嘗試嵌套的文件夾,但我認爲它應該爲那工作。如果路徑設置爲那麼就不會發生錯誤 – 2011-06-07 04:37:31

+0

您好jaydeep我已經在我的應用程序上面的代碼嘗試過,但沒有發生。在assets文件夾中添加一個png文件,並使用上面的代碼來檢查這個文件是否被轉移到/ sdcard/demo但是這個文件沒有被添加 – 2011-06-07 06:21:39

相關問題