A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© y1787257661 中级黑马   /  2015-1-7 03:21  /  1118 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class PhotoActivity extends Activity {
  2.     public static final int NONE = 0;

  3.     public static final int PHOTOHRAPH = 1;// 拍照

  4.     public static final int PHOTOZOOM = 2; // 缩放

  5.     public static final int PHOTORESOULT = 3;// 结果

  6.     public static final String IMAGE_UNSPECIFIED = "image/*";

  7.     ImageView imageView = null;

  8.     Button button0 = null;

  9.     Button button1 = null;

  10.     @Override
  11.     public void onCreate(Bundle savedInstanceState) {

  12.         super.onCreate(savedInstanceState);

  13.         setContentView(R.layout.photo);

  14.         imageView = (ImageView) findViewById(R.id.imageID);

  15.         button0 = (Button) findViewById(R.id.btn_01);

  16.         button1 = (Button) findViewById(R.id.btn_02);

  17.         button0.setOnClickListener(new OnClickListener() {

  18.             @Override
  19.             public void onClick(View v) {

  20.                 Intent intent = new Intent(Intent.ACTION_PICK, null);

  21.                 intent.setDataAndType(
  22.                         MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
  23.                         IMAGE_UNSPECIFIED);

  24.                 startActivityForResult(intent, PHOTOZOOM);

  25.             }

  26.         });

  27.         button1.setOnClickListener(new OnClickListener() {

  28.             @Override
  29.             public void onClick(View v) {

  30.                 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

  31.                 intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(
  32.                         Environment.getExternalStorageDirectory(), "temp.jpg")));

  33.                 startActivityForResult(intent, PHOTOHRAPH);

  34.             }

  35.         });

  36.     }

  37.     @Override
  38.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  39.         if (resultCode == NONE)

  40.             return;

  41.         // 拍照

  42.         if (requestCode == PHOTOHRAPH) {

  43.             // 设置文件保存路径这里放在跟目录下

  44.             File picture = new File(Environment.getExternalStorageDirectory()
  45.                     + "/temp.jpg");

  46.             startPhotoZoom(Uri.fromFile(picture));

  47.         }

  48.         if (data == null)

  49.             return;

  50.         // 读取相册缩放图片

  51.         if (requestCode == PHOTOZOOM) {

  52.             startPhotoZoom(data.getData());

  53.         }

  54.         // 处理结果

  55.         if (requestCode == PHOTORESOULT) {

  56.             Bundle extras = data.getExtras();

  57.             if (extras != null) {

  58.                 Bitmap photo = extras.getParcelable("data");

  59.                 ByteArrayOutputStream stream = new ByteArrayOutputStream();

  60.                 photo.compress(Bitmap.CompressFormat.JPEG, 75, stream);// (0 -
  61.                                                                         // 100)压缩文件

  62.                 imageView.setImageBitmap(photo);

  63.             }

  64.         }

  65.         super.onActivityResult(requestCode, resultCode, data);

  66.     }

  67.     public void startPhotoZoom(Uri uri) {

  68.         Intent intent = new Intent("com.android.camera.action.CROP");

  69.         intent.setDataAndType(uri, IMAGE_UNSPECIFIED);

  70.         intent.putExtra("crop", "true");

  71.         // aspectX aspectY 是宽高的比例

  72.         intent.putExtra("aspectX", 1);

  73.         intent.putExtra("aspectY", 1);

  74.         // outputX outputY 是裁剪图片宽�?

  75.         intent.putExtra("outputX", 64);

  76.         intent.putExtra("outputY", 64);

  77.         intent.putExtra("return-data", true);

  78.         startActivityForResult(intent, PHOTORESOULT);

  79.     }
  80. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马