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

首頁 > 系統 > Android > 正文

Android從相冊選擇圖片剪切和上傳

2019-10-23 19:49:11
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android剪切和上傳圖片的具體代碼,供大家參考,具體內容如下

1、從Android系統相冊選擇一張圖片getImageFromAlbum():

  /**   * 從圖庫獲得照片   */  protected void getImageFromAlbum() {    isImgs = true;    // MainApplication.changeSettingStateus = true;    Intent intent = new Intent(Intent.ACTION_PICK);    intent.setType("image/*");// 相片類型    intent.putExtra("aspectX", 1);    intent.putExtra("aspectY", 1);    intent.putExtra("outputX", 360);    intent.putExtra("outputY", 360);    intent.putExtra("scale", true);    intent.putExtra("return-data", true);    // intent.putExtra("outputFormat",    // Bitmap.CompressFormat.JPEG.toString());    intent.putExtra("noFaceDetection", true); // no face detection    startActivityForResult(intent, 1);  }

2、在onActivityResult()方法中:

  @Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {    // TODO Auto-generated method stub    super.onActivityResult(requestCode, resultCode, data);    if (resultCode == RESULT_OK) {      String text;      switch (requestCode) {      case 1:        Uri selectedImage = data.getData();        CutPic(selectedImage);        break;      case 3:// 對圖片進行剪切        if (data != null) {          Bitmap bitmap = data.getParcelableExtra("data");          temps = zoomImage(bitmap, 360, 360);          // 上傳圖片          uploadImg(temps);        }        break;      default:        break;      }    }  }

3、圖片剪切 CutPic(selectedImage);

  /**   * 將圖片裁剪到指定大小   *    * @param uri   * @param size   * @param flag   */  public void CutPic(Uri uri) {    Intent intent = new Intent("com.android.camera.action.CROP");    intent.setDataAndType(uri, "image/*");    intent.putExtra("crop", true);// 設置Intent中的view是可以裁剪的    // 設置寬高比    intent.putExtra("aspectX", 1);    intent.putExtra("aspectY", 1);    // 設置裁剪圖片的寬高    intent.putExtra("outputX", 360);    intent.putExtra("outputY", 360);    intent.putExtra("outputFormat", "JPEG");// 圖片格式    // 設置是否返回數據    intent.putExtra("return-data", true);    // 開啟一個帶有返回值的Activity,請求碼為3    startActivityForResult(intent, 3);  }

4、圖片壓縮剪切zoomImage(bitmap, 360, 360);

/***   * 圖片的縮放方法   *    * @param bgimage   *      :源圖片資源   * @param newWidth   *      :縮放后寬度   * @param newHeight   *      :縮放后高度   * @return   */  public static Bitmap zoomImage(Bitmap bgimage, double newWidth,      double newHeight) {    // 獲取這個圖片的寬和高    float width = bgimage.getWidth();    float height = bgimage.getHeight();    // 創建操作圖片用的matrix對象    Matrix matrix = new Matrix();    // 計算寬高縮放率    float scaleWidth = ((float) newWidth) / width;    float scaleHeight = ((float) newHeight) / height;    // 縮放圖片動作    matrix.postScale(scaleWidth, scaleHeight);    Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,        (int) height, matrix, true);    return bitmap;  }

5、上傳圖片文件至服務器uploadImg(bitMaps);

  /**   * 上傳圖片   *    * @param bitP   */  private void uploadImg(final Bitmap bitP) {    // 將Bitmap轉換成字符串    String string = null;    ByteArrayOutputStream bStream = new ByteArrayOutputStream();    bitP.compress(CompressFormat.JPEG, 100, bStream);    byte[] bytes = bStream.toByteArray();    string = Base64.encodeToString(bytes, Base64.DEFAULT);    try {      bStream.close();    } catch (IOException e1) {      // TODO Auto-generated catch block      e1.printStackTrace();    }    //string 文件上傳服務器...  }

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屯昌县| 延吉市| 津南区| 海林市| 洞口县| 濮阳县| 萝北县| 商河县| 西昌市| 股票| 和平区| 卢龙县| 武安市| 兴业县| 象州县| 楚雄市| 古浪县| 周口市| 天气| 镶黄旗| 定陶县| 安国市| 光山县| 阳西县| 江孜县| 陵川县| 襄垣县| 同仁县| 亚东县| 江陵县| 马鞍山市| 荃湾区| 隆德县| 宣城市| 长白| 城市| 西城区| 毕节市| 花莲县| 南江县| 双流县|