Android中訪問sdcard路徑的幾種方式,androidsdcard

來源:互聯網
上載者:User

Android中訪問sdcard路徑的幾種方式,androidsdcard

以前的Android(4.1之前的版本)中,SDcard路徑通過“/sdcard”或者“/mnt/sdcard”來表示,而在JellyBean(安卓4.1)系統中修改為了" /storage/sdcard0",還會有多個SDcard的情況。目前為了保持和之前代碼的相容,SDcard路徑做了Link映射。為了使代碼更加健壯並能相容以後的Android版本和新裝置,安卓4,1後sdcard中會有系統自動產生的儲存特定內容的的檔案目錄,從而可以使用一些特定函數來擷取對應目錄。

今天我們就簡單介紹幾種訪問SDcard路徑的幾種方式:

本次示範擷取的圖片路徑如下:

完整路徑為“/storage/emulated/0/Download/tianxingjiuge.jpg”

下面我們通過將本機“/storage/emulated/0/Download/tianxingjiuge.jpg”圖片載入到APP中ImageView的示範來介紹這幾種載入方式:

布局檔案上方為一個Button,下方為imagView,不做過多闡述了,java實現代碼如下:

 1 public class MainActivity extends AppCompatActivity { 2     ImageView iv; 3     @Override 4     protected void onCreate(Bundle savedInstanceState) { 5         super.onCreate(savedInstanceState); 6         setContentView(R.layout.activity_main); 7         iv= (ImageView) findViewById(R.id.iv); 8     } 9     public void load(View view){10         //第一種:直接引用全部的目錄(4.1之前使用,之後不建議這樣用)11 //        Bitmap bm = BitmapFactory.decodeFile("/storage/emulated/0/Download/tianxingjiuge.jpg");12         //第二種:/storage/emulated/0這一段的路徑可以用Environment.getExternalStorageDirectory()13 //        Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() +14 //                "/Download/tianxingjiuge.jpg");15         //第三種:使用Environment.getExternalStoragePublicDirectory(String type)函數調用不同類型的檔案目錄16         Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStoragePublicDirectory17                 (Environment.DIRECTORY_DOWNLOADS) + "/tianxingjiuge.jpg");18         iv.setImageBitmap(bm);19     }20 }

第三種方式中使用Environment.getExternalStoragePublicDirectory(String type)函數,該函數可以返回特定類型的目錄,目前支援如下類型:

1 • DIRECTORY_ALARMS //警報鈴聲2 • DIRECTORY_DCIM //相機拍攝的圖片和視頻3 • DIRECTORY_DOWNLOADS //下載檔案儲存4 • DIRECTORY_MOVIES //電影的儲存,比如通過google play下載的電影5 • DIRECTORY_MUSIC //音樂儲存6 • DIRECTORY_NOTIFICATIONS //通知音樂儲存7 • DIRECTORY_PICTURES //下載的圖片8 • DIRECTORY_PODCASTS //用於儲存podcast(部落格)的音頻檔案9 • DIRECTORY_RINGTONES //儲存鈴聲

本次圖片儲存在Download目錄下,所以使用Environment.DIRECTORY_DOWNLOADS。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.