2014-01-13 11 views
1

버튼을 클릭하여 사진을 찍고 이미지 뷰에 표시합니다. Google Nexus에서 작동합니다. 하지만 삼성 탭과 Micromax 캔버스 HD에서 작동하지 않는 이유는 무엇입니까?이미지가 이미지보기에 표시되지 않습니다.

내 버튼 클릭 코드 :

 CAMERA_PIC_REQUEST = 100; 

    String path = Environment.getExternalStorageDirectory() 
      + "/MySampleApp/image.jpg"; 

      File file = new File(path); 
      Uri outputFileUri = Uri.fromFile(file); 

      Intent cameraIntent = new Intent(
        android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
      startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

onActivityResult를 코드 :

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-feature android:name="android.hardware.camera" /> 

왜이 코드는 삼성과 micromax 작동하지 않습니다 manifest.xml

에서

  BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inSampleSize = 4; 
       Bitmap bitmap = BitmapFactory.decodeFile(path, 
          options); 
        mImageView.setImageBitmap(bitmap); 

권한?

올바른 코드가 맞지 않습니까?

아무도 도와주세요.

+0

당신은 로그 캣의 모든 로그를 얻고있다 삼성 탭 및 Micromax 캔버스 HD에 귀하의 애플 리케이션? –

+0

예, 안드로이드의 SDCard에서 파일을 읽는 중 오류가 발생했습니다.이 오류가 발생합니다. –

+0

버그가 해결 되었습니까? 아니요? 당신이 하나의 대답을 수락 ... –

답변

1

devices..use micromax에서 작동이 코드를 사용해보십시오이

btn.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View arg0) 
      { 
       CAMERA_PIC_REQUEST = 100; 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
      } 
     }); 

그리고 배포하는 동안

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
    super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     mImageView.setImageBitmap(photo); 
     } 
    } 
1

시도가이 URI

btnGallery.setOnClickListener(new OnClickListener() 
      { 

       @Override 
       public void onClick(View v) 
       { 
        Intent intent = new Intent(); 
        intent.setType("image/*"); 
        intent.setAction(Intent.ACTION_GET_CONTENT); 
        pop.dismiss(); 
        startActivityForResult(Intent.createChooser(intent, "Select Picture"), StaticMembers.galleryRequestCode); 
       } 
      }); 
      ImageView btnCamera = (ImageView) pop.findViewById(R.id.ivCamera); 
      btnCamera.setOnClickListener(new OnClickListener() 
      { 

       @Override 
       public void onClick(View v) 
       { 

        //With Camera Utils 
        pop.dismiss(); 
        outpuUri = CameraUtil.startCam(yourActivity.this); 
       } 
      }); 


@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     Log.d("Alpha", "onActivity : " + requestCode); 
     System.gc(); 
     Log.d("Alpha", "onActivity : " + requestCode + " RESULT CODE : " + resultCode); 
     System.gc(); 
     long timestamp = System.currentTimeMillis()/1000L; 
     String time = timestamp + ""; 
     String imgPath = null; 

     if (requestCode == CameraUtil.IMAGE_CAPTURED && resultCode == Activity.RESULT_OK) 
     { 
      if (outpuUri != null) 
      { 
       Log.d("Alpha", "URI NOT NULL"); 
       imgPath = outpuUri.getPath(); 
       //Log.d("Alpha", "ACT RES PATH : " + imgPath); 
       //mCapturedBitmap = CameraUtil.sampleBitmap(imgPath, ivHeightWidth); 
       //iv.setImageBitmap(mCapturedBitmap); 
      } 
      else 
      { 
       Log.d("Alpha", "URI NULL IN CAM"); 
      } 
     } 
     else if (requestCode == StaticMembers.galleryRequestCode && resultCode == Activity.RESULT_OK) 
     { 
      outpuUri = data.getData(); 
      imgPath = getPath(outpuUri); 
      mCapturedBitmap = CameraUtil.sampleBitmap(imgPath, ivHeightWidth);// BitmapFactory.decodeFile(imgPath); 
      iv.setImageBitmap(mCapturedBitmap); 
      Log.d("Alpha", "In Gallery " + imgPath); 
     } 
     if (imgPath != null) 
     { 
      showConfrirmDialog(imgPath, time); 
     } 

    } 



    public class CameraUtil 
    { 

     private static Uri outpuUri; 

     public static final int IMAGE_CAPTURED = 200; 

     public static String imageName; 

     private static String imageFolder; 


     public static Uri startCam(Activity context) 
     { 
      imageName = "sample" + System.currentTimeMillis() + ".jpg"; 
      outpuUri = Uri.fromFile(new File(getImageFolderFile().getAbsolutePath() + File.separator + imageName)); 
      Log.d("CHECK", "BEFORE STARTING CAM URI : " + outpuUri.getPath()); 
      Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      i.putExtra(MediaStore.EXTRA_OUTPUT, outpuUri); 
      i.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
      context.startActivityForResult(i, IMAGE_CAPTURED); 
      return outpuUri; 
     } 


     public static File getImageFolderFile() 
     { 

      imageFolder = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "sparkchat_camera_pics"; 

      File f = new File(imageFolder); 
      Log.d("Alpha", f.getAbsolutePath() + " exists > " + f.exists()); 
      if (!f.exists()) 
       f.mkdirs(); 
      return f; 
     } 
    } 
+0

이 코드는 작동하지 않습니다. 이미지가 sdcard에 저장되었지만 sdcard에서 이미지를 클릭하면 항목을 찾을 수 없습니다. –

관련 문제