国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android獲取相冊圖片和路徑的實現方法

2019-12-12 06:40:28
字體:
來源:轉載
供稿:網友

Android開發獲取相冊圖片的方式網上有很多種,這里說一個Android4.4后的方法,因為版本越高,一些老的api就會被棄用,新的api和老的api不兼容,導致出現很多問題。

比如:managedQuery()現在已經被getContentResolver().query()替代了,不過它們的參數都是一樣的

再比如Android4.4后Intent(Intent.ACTION_GET_CONTENT);和Intent(Intent.ACTION_OPEN_DOCUMENT);兩個方法所得到的圖片的uri是不一樣的,用老的方法導致在Android4.4系統獲取不到圖片。

 private ImageView imgShow = null; private TextView imgPath = null; private final int IMAGE_CODE = 0; Uri bitmapUri = null; private final String IMAGE_TYPE = "image/*";

imgShow是一個用來顯示圖片的imageView控件,imgPath是用來顯示獲取到圖片的路徑的TextView控件,都要在onCreate()函數里連接到對應的控件Id,IMAGE_CODE是自定義的一個參數,可以為其它數值。

private void selectImage() {  // TODO Auto-generated method stub  boolean isKitKatO = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;  Intent getAlbum;  if (isKitKatO) {   getAlbum = new Intent(Intent.ACTION_OPEN_DOCUMENT);  } else {   getAlbum = new Intent(Intent.ACTION_GET_CONTENT);  }  getAlbum.setType(IMAGE_TYPE);  startActivityForResult(getAlbum, IMAGE_CODE); }protected void onActivityResult(int requestCode, int resultCode, Intent data) {  if (resultCode != RESULT_OK) {   Log.e("TAG->onresult", "ActivityResult resultCode error");   return;  }  Bitmap bm = null;  ContentResolver resolver = getContentResolver();  if (requestCode == IMAGE_CODE) {   try {    Uri originalUri = data.getData();  //獲得圖片的uri    bitmapUri = originalUri;    isSelectPic = true;    bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);    //顯得到bitmap圖片    imgShow.setImageBitmap(bm);    String[] proj = {MediaStore.Images.Media.DATA};    Cursor cursor = getContentResolver().query(originalUri, proj, null, null, null);    if(cursor.moveToFirst()) {     int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);     String path = cursor.getString(column_index);     imgPath.setText(path);    }    cursor.close();   } catch (IOException e) {    Log.e("TAG-->Error", e.toString());   }  } }

這里用

getContentResolver().query()替代老的managedQuery(),還在一開始判斷編譯的sdk版本是否為Android4.4以后的版本
boolean isKitKatO = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
是的話就用新的方法,否則用老的方法,在button控件里調用selectImage()函數就能從圖片庫獲取圖片。
要想通過uil得到相應的bitmap圖片,可以通過以下方法:

private Bitmap decodeUriAsBitmap(Uri uri) {  Bitmap bitmap = null;  try {   bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));  } catch (FileNotFoundException e) {   e.printStackTrace();   return null;  }  return bitmap; }

傳入獲取到的圖片的uri就能得到相應的bitmap圖片。

以上就是本文的全部內容,希望對大家學習Android軟件編程有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 房产| 连平县| 大名县| 锦州市| 潜江市| 西盟| 望谟县| 通辽市| 平潭县| 犍为县| 开远市| 西宁市| 洪泽县| 轮台县| 刚察县| 公安县| 房产| 凌云县| 商河县| 青海省| 临泉县| 八宿县| 抚顺县| 临武县| 平利县| 右玉县| 南昌县| 乐平市| 富锦市| 隆化县| 峡江县| 滦平县| 夹江县| 福州市| 临沧市| 视频| 龙海市| 新丰县| 拉孜县| 平凉市| 体育|