在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SD卡外部存儲使用方法

jf_78858299 ? 來源:程序員Android ? 作者:程序員Android ? 2023-05-26 11:32 ? 次閱讀

一、保存外部存儲需要申請權限

二、外部存儲使用案例(保存,讀取,刪除圖片)

一、 保存外部存儲需要申請權限

Android設備支持外部存儲,比如SD卡等,保存在外部存儲的數據具有全局可讀性,可供在其他設備比如電腦上閱讀,修改等。使用外部存儲需要獲取外部存儲的訪問權限

這個很重要,不然無法操作SD 卡,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

二、外部存儲使用案例(保存,讀取,刪除圖片)

1. 實現效果

圖片

外部存儲保存圖片的方法

2. 判斷是否掛載 SD 卡方法

/**
     * 1.判斷SD卡是否掛載
     * **/
    public static boolean isMounted() {

        String state = Environment.getExternalStorageState();
        return state.equals(Environment.MEDIA_MOUNTED);

    }

SD 保存圖片,刪除圖片、顯示圖片的方法

3. 保存圖片到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;
        }
    }

4. 刪除圖片的方法

刪除圖片 代碼實現代碼實現如下:

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();
    }

5.讀取顯示圖片的方法

讀取顯示圖片代碼實現如下:

// 讀取圖片
    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;
    }

6. 布局如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/img_external"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btn_external_save"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="BtnSaveImage"
        android:text="保存圖片到SD卡" />

    <Button
        android:id="@+id/btn_external_delete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="BtnDeleteImage"
        android:text="刪除SD卡 圖片" />

    <Button
        android:id="@+id/btn_external_read"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="BtnReadImage"
        android:text="顯示SD卡 圖片" />

<span class="hljs-name"LinearLayout>
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3937

    瀏覽量

    127431
  • 數據
    +關注

    關注

    8

    文章

    7045

    瀏覽量

    89062
  • SD卡
    +關注

    關注

    2

    文章

    565

    瀏覽量

    63909
收藏 人收藏

    評論

    相關推薦

    SDHC高容量SD存儲卡

    SDHC是“High Capacity SD Memory Card”的縮寫,即“高容量SD存儲卡”,在其中規定SDHC是符合新的規范、且容量大于2GB小于等于32GB的SD
    發表于 02-17 11:59 ?1604次閱讀

    DSC的SD存儲卡接口設計解析

    引 言 SD存儲卡(Secure Digital Memory Card)由SD聯盟(松下、東芝及美國SanDisk公司)于1999年8月共同開發研制,是一種基于半導體快閃存儲器的新一
    發表于 11-03 10:18 ?4次下載
    DSC的<b class='flag-5'>SD</b><b class='flag-5'>存儲卡</b>接口設計解析

    全新SD Express存儲卡推出 速度趕超SSD

    SD組織的展臺上, 小編發現了全新的SD Express存儲卡SD協會稱這是全新的基于第七代SD標準制造的
    發表于 07-02 09:25 ?1901次閱讀

    天嵌科技:閃存SD存儲卡16G-存儲卡

    天嵌科技:閃存SD存儲卡16G-存儲卡
    的頭像 發表于 10-16 15:47 ?1926次閱讀
    天嵌科技:閃存<b class='flag-5'>SD</b><b class='flag-5'>存儲卡</b>16G-<b class='flag-5'>存儲卡</b>

    微雪電子Micro SD 存儲模塊簡介

    Micro SD存儲模塊 支持插入TI 支持SDIO及SPI接口 接口規格為PIN間距2.54mm排針 型號 Micro SD St
    的頭像 發表于 11-12 16:41 ?2936次閱讀
    微雪電子Micro <b class='flag-5'>SD</b><b class='flag-5'>卡</b> <b class='flag-5'>存儲</b>模塊簡介

    微雪電子SD存儲模塊簡介

    TF擴展模塊 SD存儲模塊 支持SDIO及SPI接口 支持Micro SD Card及SD
    的頭像 發表于 12-30 09:30 ?1731次閱讀
    微雪電子<b class='flag-5'>SD</b><b class='flag-5'>卡</b><b class='flag-5'>存儲</b>模塊簡介

    SD讀寫測試程序

    電子儀器理想的外部存儲介質。SD 支持兩種總線方式:SD 方式與 SPI 方式。其中 SD
    發表于 12-31 19:22 ?17次下載
    <b class='flag-5'>SD</b><b class='flag-5'>卡</b>讀寫測試程序

    STM32G0開發筆記:SD模塊的使用方法

    使用Platformio平臺的libopencm3開發框架來開發STM32G0,下面介紹SD模塊的使用方法
    的頭像 發表于 01-19 16:27 ?2353次閱讀
    STM32G0開發筆記:<b class='flag-5'>SD</b><b class='flag-5'>卡</b>模塊的<b class='flag-5'>使用方法</b>

    SD(HC)-存儲卡和MMC接口調理-AN10911

    SD(HC)-存儲卡和MMC接口調理-AN10911
    發表于 02-16 20:50 ?0次下載
    <b class='flag-5'>SD</b>(HC)-<b class='flag-5'>存儲卡</b>和MMC接口調理-AN10911

    S7-1500存儲卡使用方法

    SD的讀寫,類似于普通SD,但是不能用windows格式化
    的頭像 發表于 04-20 09:48 ?7914次閱讀

    存儲卡——SD/micro SD的圖標了解SD

    D有不少規范,常用包含存儲空間和存儲速度兩種,廠商會把滿足的規范的圖標印在卡面上,所以通過上有的規格,就能很快判斷出這張的容量、類型和
    的頭像 發表于 07-18 00:00 ?5946次閱讀
    從<b class='flag-5'>存儲卡</b>——<b class='flag-5'>SD</b>/micro <b class='flag-5'>SD</b>的圖標了解<b class='flag-5'>SD</b><b class='flag-5'>卡</b>

    SD/micro SD存儲卡介紹

    SD有不少規范,常用包含存儲空間和存儲速度兩種,廠商會把滿足的規范的圖標印在卡面上,所以通過上有的規格,就能很快判斷出這張
    的頭像 發表于 07-18 10:39 ?1859次閱讀

    SD與Flash存儲究竟存在哪些差異?

    SD 是基于閃存技術的一種可移動存儲卡,由 SD 協會進行開發并標準化,在數碼相機、智能手機、平板電腦等設備中廣泛采用。SD
    的頭像 發表于 06-05 15:54 ?1729次閱讀
    <b class='flag-5'>SD</b><b class='flag-5'>卡</b>與Flash<b class='flag-5'>存儲</b>究竟存在哪些差異?

    貼片式SD功能介紹【MK SD NAND】

    SDNAND,通常稱為嵌入式SD、貼片式TFSD Flash、直接貼裝SD、貼裝
    的頭像 發表于 07-05 17:03 ?785次閱讀
    貼片式<b class='flag-5'>SD</b><b class='flag-5'>卡</b>功能介紹【MK <b class='flag-5'>SD</b> NAND】

    mmc使用方法 mmcsd的區別

    MMC使用方法 MMC(MultiMediaCard)是一種廣泛使用的小型存儲卡,主要用于手機、數碼相機等便攜式設備。以下是MMC
    的頭像 發表于 11-25 09:51 ?277次閱讀
    主站蜘蛛池模板: 亚洲97在线| 天堂一区二区三区在线观看| 国内一级特黄女人精品片| 免费澳门一级毛片| 天天看影院| 亚洲狠狠狠一区二区三区| 亚洲先锋资源| 欧美一区色| 九九热九九| 婷婷亚洲综合五月天小说在线| 国产在线视频不卡| 丁香啪啪天堂激情婷婷| 玖玖在线| 欧洲性freefree大白屁股| 欧美爽爽爽爽爽爽视频| 色老板在线视频一区二区| 中国一级特黄特色真人毛片| 特黄特色大片免费播放路01| 老师叫我揉她内裤越快越好| 男人操女人免费视频| 5g影院欧美成人免费| 日本全黄视频| 天天操天天舔天天射| 午夜视频在线看| 免费日本黄色网址| 天天襙| 久久91精品牛牛| 丁香五月情| 91操视频| 在线免费视频国产| 日本久久久| 欧美三级在线视频| 国产卡一卡2卡三卡免费视频| 97久久综合区小说区图片专区| 人人福利| 亚洲福利视频一区二区三区| 亚洲色图日韩精品| 美女张开腿让男人桶爽| 一级毛片女人喷潮| 99亚洲自拍| 亚洲特级aaaaaa毛片|