摘要:使用外部存儲需要獲取外部存儲的訪問權限。同時期待您的關注,感謝您的閱讀,謝謝
極力推薦文章:歡迎收藏
Android 干貨分享
本篇文章主要介紹 Android 開發中的部分知識點,通過閱讀本篇文章,您將收獲以下內容:
保存外部存儲需要申請權限
外部存儲使用案例(保存,讀取,刪除圖片)
Android 設備支持外部存儲,比如SD卡等,保存在外部存儲的數據具有全局可讀性,可供在其他設備比如電腦上閱讀,修改等。使用外部存儲需要獲取外部存儲的訪問權限
這個很重要,不然無法操作SD 卡,
2. 外部存儲使用案例(保存,讀取,刪除圖片)
實現效果
判斷是否掛載 SD 卡方法/** * 1.判斷SD卡是否掛載 * **/ public static boolean isMounted() { String state = Environment.getExternalStorageState(); return state.equals(Environment.MEDIA_MOUNTED); }
SD 保存圖片,刪除圖片、顯示圖片的方法
保存圖片到SD卡保存圖片到SD卡 實現代碼如下:
// 保存圖片的方法 public void BtnSaveImage(View view) { // 獲取圖片類型 bitmap Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // 將bitmap 壓縮成byte類型 并保存到outputstream中 bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); bitmap.recycle(); boolean saveimg = SaveImg(getApplicationContext(), "photo.png", baos.toByteArray()); if (saveimg) { Toast.makeText(getApplicationContext(), "保存成功" + store_path, Toast.LENGTH_SHORT).show(); } try { baos.close(); } catch (IOException e) { e.printStackTrace(); } } // 保存圖片的方法 public static boolean SaveImg(Context context, String filename, byte[] data) { // 判斷是否掛載SD卡 if (!isMounted()) { Toast.makeText(context, "SD卡未安裝", Toast.LENGTH_SHORT).show(); return false; } File dir = new File(store_path); // 創建文件目錄 if (!dir.exists()) { dir.mkdirs(); } try { // 向文件目錄 dir中寫文件filename FileOutputStream fos = new FileOutputStream(new File(dir, filename)); fos.write(data); fos.close(); return true; } catch (IOException e) { e.printStackTrace(); Log.i("TAG", "IOException..." + e); return false; } }刪除圖片的方法
刪除圖片 代碼實現代碼實現如下:
public void BtnDeleteImage(View view) { DeletleImg(getApplicationContext(), "photo.png"); } // 刪除圖片 public static void DeletleImg(Context context, String filename) { File dirfile = new File(store_path + filename); // 判斷文件是否存在 if (!dirfile.exists()) { Toast.makeText(context, "文件不存在", Toast.LENGTH_SHORT).show(); return; } if (dirfile.isDirectory()) { String[] childdir = dirfile.list(); for (int i = 0; i < childdir.length; i++) { new File(dirfile, childdir[i]).delete(); } } dirfile.delete(); }讀取顯示圖片的方法
讀取顯示圖片代碼實現如下:
// 讀取圖片 public void BtnReadImage(View view) { Bitmap readImg = ReadImg(getApplicationContext(), "photo.png"); if (readImg == null) { Toast.makeText(getApplicationContext(), "讀取失敗" + store_path, Toast.LENGTH_SHORT).show(); } else { ((ImageView) findViewById(R.id.img_external)) .setImageBitmap(readImg); } } // 讀取圖片 public static Bitmap ReadImg(Context context, String filename) { // 判斷是否掛載SD卡 if (!isMounted()) { Toast.makeText(context, "SD卡未安裝", Toast.LENGTH_SHORT).show(); return null; } // 獲取文件路徑下的文件名稱 File imgFile = new File(store_path, filename); if (imgFile.exists()) { Log.i("TAG", "imgFile" + imgFile.getAbsolutePath()); // 將路徑下的文件轉換成 bitmap return BitmapFactory.decodeFile(imgFile.getAbsolutePath()); } else { Toast.makeText(context, "文件不存在", Toast.LENGTH_SHORT).show(); } return null; }
布局如下:
至此,本篇已結束,如有不對的地方,歡迎您的建議與指正。同時期待您的關注,感謝您的閱讀,謝謝!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75893.html
閱讀 3495·2021-11-24 11:17
閱讀 2281·2021-11-15 11:38
閱讀 3367·2021-10-14 09:42
閱讀 2930·2019-08-30 15:54
閱讀 2024·2019-08-28 18:09
閱讀 539·2019-08-26 11:48
閱讀 1633·2019-08-26 10:48
閱讀 2147·2019-08-26 10:45