该功能主要实现上传图片到服务器,选择图片的方式有两种,一种是从手机相册中选择,另一种是调用手机摄像头拍照。如图:
- Java 代码复制内容到剪贴板
-
-
- private static final int CAMERA_WITH_DATA = 1001;
-
- private static final int PHOTO_PICKED_WITH_DATA = 1002;
- Java 代码复制内容到剪贴板
-
- private Bitmap bitMap;
- private boolean hasImage;
- Java 代码复制内容到剪贴板
-
-
-
-
-
- protected void doTakePhoto() {
- try {
- Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(cameraIntent, CAMERA_WITH_DATA);
- } catch (ActivityNotFoundException e) {
- e.printStackTrace();
- }
- }
-
-
-
-
- private void doSelectImageFromLoacal(){
- Intent localIntent = new Intent();
- localIntent.setType("image/*");
- localIntent.setAction("android.intent.action.GET_CONTENT");
- Intent localIntent2 = Intent.createChooser(localIntent, "选择图片");
- startActivityForResult(localIntent2, PHOTO_PICKED_WITH_DATA);
- }
然后需要重写onActivityResult()方法,判断是否那种方式获取的图片。
- Java 代码复制内容到剪贴板
-
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (resultCode != RESULT_OK)
- return;
- switch (requestCode) {
- case PHOTO_PICKED_WITH_DATA:
- if (bitMap != null && !bitMap.isRecycled()) {
- bitMap.recycle();
- }
- Uri selectedImageUri = data.getData();
- if(selectedImageUri != null){
- try {
- bitMap = BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImageUri));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
-
- int scale = ImageThumbnail.reckonThumbnail(bitMap.getWidth(), bitMap.getHeight(), 500, 600);
- bitMap = ImageThumbnail.PicZoom(bitMap, (int) (bitMap.getWidth() / scale), (int) (bitMap.getHeight() / scale));
- imageView.setImageBitmap(bitMap);
- imageView.setVisibility(View.VISIBLE);
- hasImage = true;
- }
- break;
- case CAMERA_WITH_DATA:
- Bundle bundle = data.getExtras();
- bitMap = (Bitmap)bundle.get("data");
- if (bitMap != null)
- bitMap.recycle();
- bitMap = (Bitmap) data.getExtras().get("data");
- int scale = ImageThumbnail.reckonThumbnail(bitMap.getWidth(), bitMap.getHeight(), 500, 600);
- bitMap = ImageThumbnail.PicZoom(bitMap, (int) (bitMap.getWidth() / scale), (int) (bitMap.getHeight() / scale));
- imageView.setImageBitmap(bitMap);
- imageView.setVisibility(View.VISIBLE);
- hasImage = true;
- break;
- }
- }
-
-
本文转自06peng 51CTO博客,原文链接:http://blog.51cto.com/06peng/962497,如需转载请自行联系原作者