2015-01-14 3 views
0

전화 저장 장치에서 이미지를 선택하거나 전화의 카메라 앱에서 이미지를 가져 와서 이미지를 imageView에 표시 할 수있는 옵션을 사용자에게 제공하려고합니다. thisthis 질문을 통해 이미지를 저장할 때 이미지를 표시 할 수 있습니다. 그러나 오류가 발생하지 않지만 카메라로 사진을 찍기로 선택하면 이미지가 imageView에 표시되지 않습니다.방금 ​​카메라로 찍은 이미지를 표시하는 방법

사진을 선택하는 기능은 다음과 같습니다가 @Murtaza 후세인의로

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode == PICK_IMAGE && data != null && data.getData() != null) { 
     Uri _uri = data.getData(); 

     //User had pick an image. 
     Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null); 
     cursor.moveToFirst(); 

     image = (ImageView) findViewById(R.id.imageView); 
     image.setImageURI(_uri); 
     cursor.close(); 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 

편집

에 의해 처리됩니다

public void choosePic(View view) { 
    Intent pickIntent = new Intent(); 
    pickIntent.setType("image/*"); 
    pickIntent.setAction(Intent.ACTION_GET_CONTENT); 

    Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

    String pickTitle = "Select or take a new Picture"; // Or get from strings.xml 
    Intent chooserIntent = Intent.createChooser(pickIntent, pickTitle); 
    chooserIntent.putExtra 
    (
     Intent.EXTRA_INITIAL_INTENTS, 
     new Intent[] { takePhotoIntent } 
    ); 

    startActivityForResult(chooserIntent, SELECT_PICTURE); 
} 

그 후 나는 찾을 수 있었다하는 데 도움이 실제 해결책 :

카메라에서 이미지를 캡처 할 때

답변

0

당신은 당신의 활동에 onActivityResult()

if(requestCode==0 && resultCode==RESULT_OK){ 

    Bundle extras = data.getExtras(); 
    Bitmap thePic = extras.getParcelable("data"); 


    image =(ImageView) findViewById(R.id.imageView); 
    image.setImageBitmap(thePic); 

} 
+0

불행히도 사진이 여전히 표시되지 않습니다. – Axel

+0

업데이트 된 코드 추가 –

+0

확실합니까, 그 requestCode == 0 && resultCode == RESULT_OK가 맞습니까? 이런 모습은 결코 사실이 아닐 것입니다. – Axel

0

에 대한 코드를 추가해야합니다. 아래 코드를 작성하십시오. onActivityResult를에서

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),"/imageLarge"+System.currentTimeMillis()+".jpg")); 
       intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri); 

       try { 
        intent.putExtra("return-data", true); 
        startActivityForResult(intent, 111); 
       } catch (ActivityNotFoundException e) { 
        e.printStackTrace(); 
       } 

()
@Override 
     protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      super.onActivityResult(requestCode, resultCode, data); 
      switch (requestCode) { 
      case 111:   

       if(resultCode == RESULT_OK) 
       { 
        Log.v("","After camera capture path is --> "+mImageCaptureUri.toString().substring(8));   
        Bitmap bitmap=BitmapFactory.decodeFile(mImageCaptureUri.toString().substring(8)); 
image.setImageBitmap(bitmap); 

       } 
       else 
       { 

       } 
    } 
    } 

한 권한을 추가하는 것을 잊지 마세요 .. 아래의 코드를 작성합니다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

질문이있는 경우 알려주십시오. 감사.

관련 문제