一種是抓手機內的資料夾讀取圖檔,另一種是直接抓Android專案中的drawable資料夾。
首先先在xml加入一個ImageView物件,接著在AndroidManifest.xml加入讀取權限:
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
1. 讀取手機資料夾圖檔:
在手機檔案裡面建立一個myDoc資料夾,放一張image.png圖片。
這個方法讀取圖片的速度會慢一點點,但是可以減少APP跟專案檔的大小。
- 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();
- }
2. 讀取專案檔中的drawable資料夾:
將image.png圖檔放到Android Studio專案裡面的drawable資料夾裡面。
這個方法把圖片檔都包到專案檔跟APP裡面,檔案會相對比較大,但讀取速度比較快。
- 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();
- }
比較要注意的是filename檔名命名時,注意有無需要包含格式。
兩種方法都各有優缺點,可以依照程式架構來決定用哪一種寫比較好。
(END)
沒有留言:
張貼留言