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

首頁 > 系統 > Android > 正文

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

2019-10-22 18:27:57
字體:
來源:轉載
供稿:網友

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

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

android,選取相冊圖片,從相冊中選取圖片

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

第一步就是主要跳轉的相冊

 //在這里跳轉到手機系統相冊里面    Intent intent = new Intent(        Intent.ACTION_PICK,        android/57479.html">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);    //在相冊里面選擇好相片之后調回到現在的這個activity中    switch (requestCode) {      case IMAGE_REQUEST_CODE://這里的requestCode是我自己設置的,就是確定返回到那個Activity的標志        if (resultCode == RESULT_OK) {//resultcode是setResult里面設置的code值          try {            Uri selectedImage = data.getData(); //獲取系統返回的照片的Uri            String[] filePathColumn = {MediaStore.Images.Media.DATA};            Cursor cursor = getContentResolver().query(selectedImage,                filePathColumn, null, null, null);//從系統表中查詢指定Uri對應的照片            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) 選擇圖片后裁剪先上圖

android,選取相冊圖片,從相冊中選取圖片

首先也是要調起相冊

// 使用意圖直接調用手機相冊    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) {    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);    //設置返回碼    startActivityForResult(intent, RESIZE_REQUEST_CODE);  }  private void showResizeImage(Intent data) {    Bundle extras = data.getExtras();    if (extras != null) {      Bitmap photo = extras.getParcelable("data");      //裁剪之后設置保存圖片的路徑      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,源代碼下載

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尤溪县| 平泉县| 扎鲁特旗| 邢台市| 和田市| 郸城县| 石门县| 湖南省| 广水市| 阿巴嘎旗| 宣威市| 沿河| 商河县| 陆川县| 遂宁市| 镇安县| 都江堰市| 司法| 磐石市| 四平市| 七台河市| 鸡东县| 邵东县| 交城县| 浑源县| 山丹县| 会昌县| 库尔勒市| 甘孜| 车致| 莱芜市| 九龙县| 张家川| 临武县| 怀集县| 灌南县| 安多县| 武汉市| 柞水县| 新宾| 阳春市|