Android中訪問sdcard路徑的幾種方式
以前的Android(4.1之前的版本)中,SDcard路徑通過“/sdcard”或者“/mnt/sdcard”來表示,而在JellyBean(安卓4.1)系統(tǒng)中修改為了" /storage/sdcard0",還會(huì)有多個(gè)SDcard的情況。目前為了保持和之前代碼的兼容,SDcard路徑做了Link映射。為了使代碼更加健壯并能兼容以后的Android版本和新設(shè)備,安卓4,1后sdcard中會(huì)有系統(tǒng)自動(dòng)生成的保存特定內(nèi)容的的文件目錄,從而可以使用一些特定函數(shù)來獲取對(duì)應(yīng)目錄。
今天我們就簡(jiǎn)單介紹幾種訪問SDcard路徑的幾種方式:
本次演示獲取的圖片路徑如下:
完整路徑為“/storage/emulated/0/Download/tianxingjiuge.jpg”
下面我們通過將本機(jī)“/storage/emulated/0/Download/tianxingjiuge.jpg”圖片加載到APP中ImageView的演示來介紹這幾種加載方式:
布局文件上方為一個(gè)Button,下方為imagView,不做過多闡述了,java實(shí)現(xiàn)代碼如下:
public class MainActivity extends AppCompatActivity { ImageView iv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv= (ImageView) findViewById(R.id.iv); } public void load(View view){ //第一種:直接引用全部的目錄(4.1之前使用,之后不建議這樣用) // Bitmap bm = BitmapFactory.decodeFile("/storage/emulated/0/Download/tianxingjiuge.jpg"); //第二種:/storage/emulated/0這一段的路徑可以用Environment.getExternalStorageDirectory() // Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + // "/Download/tianxingjiuge.jpg"); //第三種:使用Environment.getExternalStoragePublicDirectory(String type)函數(shù)調(diào)用不同類型的文件目錄 Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_DOWNLOADS) + "/tianxingjiuge.jpg"); iv.setImageBitmap(bm); } }
第三種方式中使用Environment.getExternalStoragePublicDirectory(String type)函數(shù),該函數(shù)可以返回特定類型的目錄,目前支持如下類型:
• DIRECTORY_ALARMS //警報(bào)鈴聲 • DIRECTORY_DCIM //相機(jī)拍攝的圖片和視頻 • DIRECTORY_DOWNLOADS //下載文件保存 • DIRECTORY_MOVIES //電影的保存,比如通過google play下載的電影 • DIRECTORY_MUSIC //音樂保存 • DIRECTORY_NOTIFICATIONS //通知音樂保存 • DIRECTORY_PICTURES //下載的圖片 • DIRECTORY_PODCASTS //用于保存podcast(博客)的音頻文件 • DIRECTORY_RINGTONES //保存鈴聲
本次圖片保存在Download目錄下,所以使用Environment.DIRECTORY_DOWNLOADS。
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
Android使用第三方庫(kù)實(shí)現(xiàn)日期選擇器
這篇文章主要為大家詳細(xì)介紹了Android使用第三方庫(kù)實(shí)現(xiàn)日期選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10android實(shí)現(xiàn)簡(jiǎn)易計(jì)算器
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)簡(jiǎn)易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Android 判斷當(dāng)前語(yǔ)言環(huán)境是否是中文環(huán)境
本文主要介紹了Android 判斷當(dāng)前語(yǔ)言環(huán)境是否是中文環(huán)境的方法。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04Android WebView實(shí)現(xiàn)頂部進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android WebView實(shí)現(xiàn)頂部進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11android獲取手機(jī)IMSI碼判斷手機(jī)運(yùn)營(yíng)商代碼實(shí)例
這篇文章主要介紹了android獲取手機(jī)IMSI碼判斷手機(jī)運(yùn)營(yíng)商代碼實(shí)例,大家參考使用2013-11-11Android ApiDemo示例工程的創(chuàng)建
本文主要介紹Android ApiDemo示例工程的創(chuàng)建,這里SDK中的示例工程做了大致介紹,并說明如何創(chuàng)建ApiDemo 示例工程,有需要看自帶代碼的朋友可以參考下2016-09-09Android 關(guān)閉多個(gè)Activity的實(shí)現(xiàn)方法
這篇文章主要介紹了Android 關(guān)閉多個(gè)Activity的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09