• 打开读取相册照片


    //参数声明
    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);
    		}
    	}
       
    

      

  • 相关阅读:
    git连接到https服务器时出现“gnutls_handshake() failed”
    Linux内核:通知链 机制
    在Linux驱动中使用notifier通知链
    Linux 内核:RCU机制与使用
    什么是工程师文化?
    在Android源码中查找Java代码中native函数对应的C++实现
    Windows下Qt5程序打包发布
    Android Framework:如何让 App 拿到Power key 值
    Windows 监控小工具
    Windows 远程桌面无法上传文件或者文件夹
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2719713.html
Copyright © 2020-2023  润新知