첫 번째 코드 노트 - ChoosePicTest

3114 단어
ChoosePicTest
첫 번째 줄 코드의 사진과 갤러리 사진 선택, 변경
데모
20160824_163601.gif
필기
클릭하여 사진 찍기
  • 파일 저장 이미지 만들기

    File outImage = new File(Environment.getExternalStorageDirectory(),"tempImg.png");
  • 이전 경로에 따라 빈 파일 만들기

    outImage.createNewFile();
  • file 파일을 Uri로 변환하기 - 형식: file://

    imageUri = Uri.fromFile(outImage);
  • 시동 카메라

    //
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
    startActivityForResult(intent,TAKE_PHOTO);
    또는
  • 앨범 열기

    Intent intent = new Intent("android.intent.action.GET_CONTENT");
    intent.setType("image/*"); intent.putExtra("crop",true);
    intent.putExtra("scale",true);
    intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
    startActivityForResult(intent,SELECT_PHOTO);
  • 갤러리 사진 선택
    1, 2, 3단계 동상
  • 설정 intent

    Intent intent = new Intent("android.intent.action.GET_CONTENT");
    intent.setType("image/*");
    intent.putExtra("crop",true);
    intent.putExtra("scale",true); intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri); startActivityForResult(intent,SELECT_PHOTO);
  • onActivity Result 처리 - 두 곳에서bitmap을 가져오는 방식이 다르다는 것을 주의하십시오
    사진과 재단
    switch (requestCode){
                case  TAKE_PHOTO:
                    if (resultCode == RESULT_OK){
                        Intent intent = new Intent("com.android.camera.action.CROP");
                        intent.setDataAndType(imageUri,"image/*");
                        intent.putExtra("scale",true);
                        intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
                        startActivityForResult(intent,CROP_PHOTO);
                    }
    
                   break;
    
                case  CROP_PHOTO:
                    if (resultCode == RESULT_OK) {
                        try {
                            //  InputStream   bitmap
                            Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
                            //           
                            mImageView.setImageBitmap(bitmap);
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        }
                    }
    
                    break;
    

    선택 및 표시
    case SELECT_PHOTO:
                    ContentResolver resolver = getContentResolver();
                    //         
                    Uri uri = data.getData();
                    Log.d(TAG, "onActivityResult: "+uri);
    
                    try {
    
                        Bitmap photo = MediaStore.Images.Media.getBitmap(resolver,uri);
                        if (photo != null){
                            mImageView.setImageBitmap(photo);
                        }
                    }catch (IOException e){
                        e.printStackTrace();
                    }
    

    좋은 웹페이지 즐겨찾기