732003684

导航

打开读取相册照片

//参数声明
private final static int PHOTO_REQUEST_GALLERY = 1;
private final static int PHOTO_CROP = 2;
//启动 Intent
 
Intent intent = new Intent(Intent.ACTION_PICK, null);
                intent.setDataAndType(
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
                startActivityForResult(intent, PHOTO_REQUEST_GALLERY);

  

// ActivityForResult的处理
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
        case PHOTO_REQUEST_GALLERY:
            if (data != null) {
                startPhotoZoom(data.getData());
            }
            break;
        case PHOTO_CROP:
            if (data != null) {
                setPicToView(data);
                mSetV.setText("保存");
                mCancelV.setVisibility(View.VISIBLE);
                is2Save = true;
            }
            break;
 
        default:
            break;
        }
    }

  

    /**
     * 调用android系统自带的图片裁剪,把用户选择的图片 裁剪成适合用户手机的大小
     *
     * @param imagePath
     */
 
public void startPhotoZoom(Uri uri){
    // 调用intent跳转的裁间页面
    Intent intent = new Intent("com.android.camera.action.CROP");
    // 传入裁剪图片的路径uri和需要裁剪的格式
    intent.setDataAndType(uri, "image/*");
    // 可裁剪状态
    intent.putExtra("crop", "true");
    // aspectX aspectY 是宽高的比例
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    // outputX outputY 是裁剪图片宽高
    intent.putExtra("outputX", 72);
    intent.putExtra("outputY", 72);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, PHOTO_CROP);
 
}
 
  private void setPicToView(Intent picdata) {
        Bundle bundle = picdata.getExtras();
        if (bundle != null) {
            Bitmap photo = bundle.getParcelable("data");
            photo.setDensity(Bitmap.DENSITY_NONE);
            mBitmap = photo;
            int w = photo.getWidth();
            int h = photo.getHeight();
            float f = photo.getDensity();
            Drawable drawable = new BitmapDrawable(photo);
            headV.setImageDrawable(drawable);
        }
    }
   

  

posted on   732003684  阅读(330)  评论(0编辑  收藏  举报

努力加载评论中...
点击右上角即可分享
微信分享提示