一種是抓手機內的資料夾讀取圖檔,另一種是直接抓Android專案中的drawable資料夾。
首先先在xml加入一個ImageView物件,接著在AndroidManifest.xml加入讀取權限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
1. 讀取手機資料夾圖檔:
在手機檔案裡面建立一個myDoc資料夾,放一張image.png圖片。
String filepath = "/myDoc/"; // get doc in device path String filename = "image.png"; // with format .png File imgFile = new File(Environment.getExternalStorageDirectory() + filepath + filename); if(imgFile.exists()){ ivImage.setImageURI(Uri.fromFile(imgFile)); }else{ Toast.makeText(this, "can't find" + filepath + filename, Toast.LENGTH_LONG).show(); }這個方法讀取圖片的速度會慢一點點,但是可以減少APP跟專案檔的大小。
2. 讀取專案檔中的drawable資料夾:
將image.png圖檔放到Android Studio專案裡面的drawable資料夾裡面。
String filepath = "@drawable/"; // get drawable path String filename = "image"; // without format int imageResource = getResources().getIdentifier(filepath + filename, null, getPackageName()); if(imageResource != 0) { ivImage.setImageResource(imageResource); }else{ Toast.makeText(this, "can't find" + filepath + filename, Toast.LENGTH_LONG).show(); }這個方法把圖片檔都包到專案檔跟APP裡面,檔案會相對比較大,但讀取速度比較快。
比較要注意的是filename檔名命名時,注意有無需要包含格式。
兩種方法都各有優缺點,可以依照程式架構來決定用哪一種寫比較好。
(END)
沒有留言:
張貼留言