亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android中Bitmap、File與Uri之間的簡單記錄

2019-10-21 21:24:53
字體:
來源:轉載
供稿:網友

簡介:

感覺Uri 、File、bitmap 比較混亂,這里進行記載,方便以后查看.下面話不多說了,來一起看看詳細的介紹吧

Bitmap、File與Uri

1、將一個文件路徑path轉換成File

String path ;File file = new File(path)

2、講一個Uri轉換成一個path

以選擇一張圖片為例:

String path = FileTools.getRealPathFromUri(content,uri);//自定義方法在下面 public static String getRealPathFromUri(Context context, Uri uri) { if (null == uri) return null; //傳入的Uri為空,結束方法 final String scheme = uri.getScheme(); //得到Uri的scheme String realPath = null; if (scheme == null)  realPath = uri.getPath(); //如果scheme為空  else if (ContentResolver.SCHEME_FILE.equals(scheme)) {  realPath = uri.getPath(); //如果得到的scheme以file開頭 } else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {  //得到的scheme以content開頭  Cursor cursor = context.getContentResolver().query(uri,   new String[]{MediaStore.Images.ImageColumns.DATA},   null, null, null);  if (null != cursor) {  if (cursor.moveToFirst()) {   int index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);   if (index > -1) {   realPath = cursor.getString(index);   }  }  cursor.close(); //必須關閉  } } //經過上面轉換得到真實路徑之后,判斷一下這個路徑,如果還是為空的話,說明有可能文件存在于外置sd卡上,不是內置sd卡. if (TextUtils.isEmpty(realPath)) {  if (uri != null) {    String uriString = uri.toString();  int index = uriString.lastIndexOf("/"); //匹配 / 在一個路徑中最后出現位置  String imageName = uriString.substring(index);  //通過得到的最后一個位置,然后截取這個位置后面的字符串, 這樣就可以得到文件名字了   File storageDir;  storageDir = Environment.getExternalStoragePublicDirectory(   Environment.DIRECTORY_PICTURES); //查看外部儲存卡公共照片的文件  File file = new File(storageDir, imageName);  //自己創建成文件,  if (file.exists()) {   realPath = file.getAbsolutePath();  } else {//  //那么存儲在了外置sd卡的應用緩存file中   storageDir = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES);   File file1 = new File(storageDir, imageName);   realPath = file1.getAbsolutePath();  }  } } return realPath;  比如我在android 8.0 上運行的時候 選擇照片之后的Uri : content://media/external/images/media/568344 進行上面方法轉換完之后: /storage/emulated/0/com.appben.appche/browser-photos/1550297407488.jpg  }

3、File 轉換成path

String path = file.getPath();
將此抽象路徑名轉換為一個路徑名字符串。所得到的字符串使用默認名稱分隔符來分隔名稱序列中的名稱。

String path = file.getAbsolutePath();
如果此抽象路徑名已經是絕對路徑名,則返回該路徑名字符串,這與 getPath() 方法一樣。如果此抽象路徑名是空的抽象路徑名,則返回當前用戶目錄的路徑名字符串,
該目錄由系統屬性 user.dir 指定。否則,使用與系統有關的方式分析此路徑名。
在 UNIX 系統上,通過根據當前用戶目錄分析某一相對路徑名,可使該路徑名成為絕對路徑名。在 Microsoft Windows 系統上,
通過由路徑名指定的當前驅動器目錄(如果有)來分析某一相對路徑名,
可使該路徑名成為絕對路徑名;否則,可以根據當前用戶目錄來分析它。

getCanonicalPath
規范路徑名是絕對路徑名,并且是惟一的。規范路徑名的準確定義與系統有關。如有必要,此方法首先將路徑名轉換成絕對路徑名,
這與調用 getAbsolutePath() 方法的效果一樣,然后用與系統相關的方式將它映射到其惟一路徑名。
這通常涉及到從路徑名中移除多余的名稱(比如 "." 和 "..")、分析符號連接(對于 UNIX 平臺),以及
將驅動器名轉換成標準大小寫形式(對于 Microsoft Windows 平臺)。 
表示現有文件或目錄的每個路徑名都有一個惟一的規范形式。表示非存在文件或目錄的每個路徑名也有一個惟一的規范形式
。非存在文件或目錄路徑名的規范形式可能不同于創建文件或目錄之后同一路徑名的規范形式。
同樣,現有文件或目錄路徑名的規范形式可能不同于刪除文件或目錄之后同一路徑名的規范形式。

下面是參看文章中提到的一個例子

https://blog.csdn.net/qq_39949109/article/details/80609472File file = new File(".//test1.txt");File file = new File("D://workspace//test//test1.txt"); System.out.println("-----默認相對路徑:取得路徑不同------"); System.out.println(file1.getPath()); System.out.println(file1.getAbsolutePath()); System.out.println("-----默認絕對路徑:取得路徑相同------"); System.out.println(file2.getPath()); System.out.println(file2.getAbsolutePath());結果是:-----默認相對路徑:取得路徑不同------./test1.txtD:/workspace/test/./test1.txt-----默認絕對路徑:取得路徑相同------D:/workspace/test/test1.txtD:/workspace/test/test1.txt File file = new File("..//src//test1.txt"); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalPath());//得到的結果D:/workspace/test/../src/test1.txtD:/workspace/src/test1.txt

4、URI 與Uri的區別

URI 是java.net的子類

Uri 是android.net的子類,Uri不能被實例化

5、URI 轉換成 File

File file = null;try{ file = new File(new URI(uri.toString()));}catch(URISyntaxException e){ e.printStackTrace();}

6、File 轉換成URI

URI uri = file.toURI();

7、Path 轉換成Uri

Uri uri = Uri.parse(path);

8、圖片的Uri轉Bitmap

Bitmap bitmap = BitmapFactory.decodeStream(contentResolver.openInputStream(uri))

9、File 轉到bitmap

Bitmap bitmap = BitmapFactory.decodeFile(file.getPath); //這個file要是真實路徑創建的file

10、bitmap 轉 file,可以理解為將bitmap進行保存.

//自己創建想要保存的文件的文件對象BuffferedOutPutStream bos = new BufferedOutputStream(new FileOutputStream(file));bos.flush;bos.close;

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品在线| 欧美成年人在线观看| 91香蕉嫩草神马影院在线观看| 国产欧美日韩精品丝袜高跟鞋| 亚洲成年人在线播放| 亚洲欧美日韩久久久久久| 国外日韩电影在线观看| 亚洲高清av在线| 欧美成人精品不卡视频在线观看| 亚洲精品国精品久久99热一| 丝袜亚洲另类欧美重口| 欧美午夜www高清视频| 国产精品99久久久久久www| 在线观看视频亚洲| 久久九九有精品国产23| 国产在线观看精品| 欧美激情亚洲激情| 一区二区三区黄色| 久久久久久久久综合| 久久久久久尹人网香蕉| 国产欧美一区二区三区在线| 欧美精品一区在线播放| 国产午夜精品麻豆| 中文字幕在线日韩| 欧美成人一区在线| 日韩av高清不卡| 欧美噜噜久久久xxx| 久久国产精品久久国产精品| 亚洲国产成人91精品| 日韩在线观看视频免费| 51色欧美片视频在线观看| 欧美极品欧美精品欧美视频| 国产日韩精品综合网站| 欧美中文在线免费| 久久亚洲私人国产精品va| 精品国产91乱高清在线观看| 成人网在线视频| 中文字幕亚洲一区二区三区| 狠狠色狠狠色综合日日小说| 国产精品96久久久久久又黄又硬| 日韩免费看的电影电视剧大全| 亚洲欧美制服综合另类| 欧美性猛交xxxx富婆弯腰| 亚洲福利视频在线| 热99精品里视频精品| 国产在线精品成人一区二区三区| 在线中文字幕日韩| 国产精品欧美一区二区| 国产亚洲a∨片在线观看| 欧美成人精品xxx| 97国产精品免费视频| 欧美黄色片免费观看| 欧美日韩xxx| 欧美日韩中文字幕日韩欧美| 欧美影院久久久| 久久久久久成人| 日本一欧美一欧美一亚洲视频| 亚洲深夜福利视频| 亚洲午夜久久久久久久| 亚洲香蕉在线观看| 欧美尤物巨大精品爽| 欧美激情影音先锋| 久久久久国产视频| 精品国产精品自拍| 久久精品视频导航| 亚洲欧洲av一区二区| 国产精品三级在线| 91久久国产精品91久久性色| 国产大片精品免费永久看nba| 久久不射热爱视频精品| 激情懂色av一区av二区av| 亚洲综合在线中文字幕| 亚洲美女在线观看| 亚洲男人第一av网站| 欧美午夜片欧美片在线观看| xvideos亚洲| 欧美日韩国内自拍| 欧美日产国产成人免费图片| 国产精品99久久99久久久二8| 最好看的2019年中文视频| 亚洲激情在线视频| 欧美成人h版在线观看| yw.139尤物在线精品视频| 亚洲一区二区少妇| 自拍偷拍免费精品| 亚洲无线码在线一区观看| 日本国产欧美一区二区三区| 国产精品久久久久久久9999| 欧美一级淫片videoshd| 欧美最猛黑人xxxx黑人猛叫黄| 日韩av网址在线观看| 欧美成人免费在线视频| 成人免费自拍视频| 97精品国产aⅴ7777| 2019av中文字幕| 91在线观看免费高清完整版在线观看| 色午夜这里只有精品| 精品国产91乱高清在线观看| 欧美日韩一二三四五区| 国产精品午夜一区二区欲梦| 日韩电影免费观看在线观看| 久久久久女教师免费一区| 欧洲亚洲妇女av| 欧美裸体xxxx极品少妇| 国产精品91视频| 91在线视频免费| 亚洲va男人天堂| 久久精品国产96久久久香蕉| 亚洲国产精品字幕| 日韩美女免费线视频| 2021国产精品视频| 亚洲成人精品久久久| 欧美最猛性xxxxx免费| 91精品国产一区| 国产91在线播放| 国产精品久久久久9999| 亚洲天堂av电影| 日韩免费电影在线观看| 成人高清视频观看www| 欧美日韩一二三四五区| 91久久久久久国产精品| 亚洲精品一区中文字幕乱码| 国产精品久久久久久av福利软件| 色99之美女主播在线视频| 亚洲第一网站免费视频| 秋霞午夜一区二区| 国产91精品最新在线播放| 91精品免费久久久久久久久| 欧美做受高潮1| 欧美在线播放视频| 久久中文字幕国产| 精品欧美国产一区二区三区| 欧美电影在线观看高清| 国产成人一区二区三区| 热久久这里只有精品| 国产69久久精品成人看| 久久久久久成人精品| 91精品在线国产| 91精品国产高清久久久久久91| 日韩精品亚洲元码| 久久久久久免费精品| 日韩成人黄色av| 一区二区av在线| 精品欧美aⅴ在线网站| 国产精品视频永久免费播放| 九九九热精品免费视频观看网站| 亚洲一级片在线看| 亚洲开心激情网| 中文字幕在线观看日韩| 精品久久久久久久大神国产| 国产精品天天狠天天看| 欧美日韩免费在线观看| 91亚洲精品久久久| 成人在线视频网站| 亚洲在线观看视频网站| 久久人91精品久久久久久不卡| 亚洲国产欧美日韩精品| 国产在线视频不卡| 日韩av在线一区二区| 91在线看www| 日韩黄在线观看| 97视频免费看| 国产一区欧美二区三区| 久久亚洲国产精品成人av秋霞|