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

首頁 > 系統(tǒng) > Android > 正文

Android開發(fā)從相冊中選取照片的示例代碼

2019-12-12 02:03:03
字體:
供稿:網(wǎng)友

最近項目在做一個功能:就是需要從用戶選擇頭像跳轉(zhuǎn)到相冊選擇圖片,這應(yīng)該是一個很簡單的需求,但是在網(wǎng)上搜了一下有好多都講的很亂,其實(shí)用幾十行代碼就可以實(shí)現(xiàn)的為什么要說的那么復(fù)雜呢,下面就簡單說一下嘍。

下面說兩種方法分別是直接選擇相冊返回,另外一種為選擇相冊之后進(jìn)行裁剪。先上效果圖

(1)直接選擇相冊后返回

第一步就是主要跳轉(zhuǎn)的相冊

 //在這里跳轉(zhuǎn)到手機(jī)系統(tǒng)相冊里面    Intent intent = new Intent(        Intent.ACTION_PICK,        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);    startActivityForResult(intent, IMAGE_REQUEST_CODE);

第二步就是返回的時候獲取相冊的路徑

 @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    //在相冊里面選擇好相片之后調(diào)回到現(xiàn)在的這個activity中    switch (requestCode) {      case IMAGE_REQUEST_CODE://這里的requestCode是我自己設(shè)置的,就是確定返回到那個Activity的標(biāo)志        if (resultCode == RESULT_OK) {//resultcode是setResult里面設(shè)置的code值          try {            Uri selectedImage = data.getData(); //獲取系統(tǒng)返回的照片的Uri            String[] filePathColumn = {MediaStore.Images.Media.DATA};            Cursor cursor = getContentResolver().query(selectedImage,                filePathColumn, null, null, null);//從系統(tǒng)表中查詢指定Uri對應(yīng)的照片            cursor.moveToFirst();            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);            path = cursor.getString(columnIndex); //獲取照片路徑            cursor.close();            Bitmap bitmap = BitmapFactory.decodeFile(path);            iv_photo.setImageBitmap(bitmap);          } catch (Exception e) {            // TODO Auto-generatedcatch block            e.printStackTrace();          }        }        break;    }  }

(2) 選擇圖片后裁剪先上圖

首先也是要調(diào)起相冊

// 使用意圖直接調(diào)用手機(jī)相冊    Intent intent = new Intent(        Intent.ACTION_PICK,        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);    // 打開手機(jī)相冊,設(shè)置請求碼    startActivityForResult(intent, IMAGE_REQUEST_CODE);

然后這里增加了一步就是用戶選擇了相冊之后然后再增加裁剪功能

 @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {    if (resultCode != RESULT_OK) {      return;    } else {      switch (requestCode) {        case IMAGE_REQUEST_CODE:          resizeImage(data.getData());          break;        case RESIZE_REQUEST_CODE:          if (data != null) {            showResizeImage(data);          }          break;      }    }    super.onActivityResult(requestCode, resultCode, data);  }  //這里增加裁剪  public void resizeImage(Uri uri) {    Intent intent = new Intent("com.android.camera.action.CROP");    intent.setDataAndType(uri, "image/*");    intent.putExtra("crop", "true");    intent.putExtra("aspectX", 1);    intent.putExtra("aspectY", 1);    //裁剪的大小    intent.putExtra("outputX", 150);    intent.putExtra("outputY", 150);    intent.putExtra("return-data", true);    //設(shè)置返回碼    startActivityForResult(intent, RESIZE_REQUEST_CODE);  }  private void showResizeImage(Intent data) {    Bundle extras = data.getExtras();    if (extras != null) {      Bitmap photo = extras.getParcelable("data");      //裁剪之后設(shè)置保存圖片的路徑      String path = getFilesDir().getPath() + File.separator + IMAGE_FILE_NAME;      //壓縮圖片      ImageUtils.saveImage(photo, path);      new BitmapDrawable();      Drawable drawable = new BitmapDrawable(photo);      iv_photo.setImageDrawable(drawable);    }  }

ok,源代碼下載

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌拉特后旗| 油尖旺区| 喜德县| 班玛县| 莱州市| 尼勒克县| 中牟县| 宁都县| 观塘区| 合作市| 高淳县| 南平市| 隆安县| 攀枝花市| 金秀| 紫阳县| 水富县| 桃江县| 长泰县| 普陀区| 拉萨市| 井冈山市| 竹山县| 金堂县| 辉南县| 金川县| 吉隆县| 社会| 颍上县| 福州市| 盱眙县| 洪雅县| 澎湖县| 临漳县| 景泰县| 格尔木市| 郑州市| 根河市| 周至县| 星子县| 砀山县|