2017-03-12 6 views
-3

我拍攝了照片和我拍攝的照片來到這個imageview。但它不清楚。我該如何解決這個問題?在我的Android應用程序中拍攝的照片看起來並不清晰

enter image description here

我的代碼如下

private void GalleryOpen() { 
     GalIntent=new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(Intent.createChooser(GalIntent,"Select Image from Gallery"),2); 
    } 

    private void CameraOpen() { 
     CamIntent =new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     file=new File(Environment.getExternalStorageDirectory(),"file"+String.valueOf(System.currentTimeMillis())+".jpg"); 
     uri=Uri.fromFile(file); 
     CamIntent.putExtra(MediaStore.EXTRA_OUTPUT,uri); 
     CamIntent.putExtra("return-data",true); 
     startActivityForResult(CamIntent,0); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if(requestCode == 0 && resultCode == RESULT_OK) 
      CropImage(); 
     else if(requestCode == 2){ 
      if(data!= null){ 
       uri=data.getData(); 
       CropImage(); 
      } 
     } 
     else if(requestCode == 1){ 
      if(data !=null){ 
       Bundle bundle=data.getExtras(); 
       Bitmap bitmap=bundle.getParcelable("data"); 
       imageView.setImageBitmap(bitmap); 

      } 
     } 
    } 

    private void CropImage() { 
     try{ 
      CropIntent =new Intent("com.android.camera.action.CROP"); 
      CropIntent.setDataAndType(uri,"image/*"); 
      CropIntent.putExtra("crop","true"); 
      CropIntent.putExtra("outputX",180); 
      CropIntent.putExtra("outputY",180); 
      CropIntent.putExtra("aspectX",3); 
      CropIntent.putExtra("aspectY",4); 
      CropIntent.putExtra("scaleUpIfNeeded",true); 
      CropIntent.putExtra("return-data",true); 
      startActivityForResult(CropIntent,1); 
     } 
     catch (AccessControlException ex){ 

     } 
    } 

    @Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
     switch (requestCode){ 
      case RequestPermissionCode:{ 
       if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED) 
        Toast.makeText(this,"Permission Granted",Toast.LENGTH_SHORT).show(); 
       else 
        Toast.makeText(this,"Permission Canceled",Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 
+2

沒有人可以幫你沒有[MCVE]展示你是如何拍攝照片。 – CommonsWare

+0

使用uri代替位圖 –

+0

private void CameraOpen(){ CamIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); file = new File(Environment.getExternalStorageDirectory(),「file」+ String.valueOf(System.currentTimeMillis())+「。jpg」); uri = Uri.fromFile(file); CamIntent.putExtra(MediaStore.EXTRA_OUTPUT,uri); CamIntent.putExtra(「return-data」,true); startActivityForResult(CamIntent,0); } – ernbykz

回答

0

試試這個

Uri selectedImage; 
private Uri imageUri; 
String path; 
ImageView imageView; 

    button.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      activeTakePhoto(); // open camera 
     } 
    }); 

    private void activeTakePhoto() { 
    String filename = "Pic_" + System.currentTimeMillis() + ".jpg"; 
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    File photo = new File(Environment.getExternalStorageDirectory(), filename); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, 
    Uri.fromFile(photo)); 
    imageUri = Uri.fromFile(photo); 
    startActivityForResult(intent, REQUEST_IMAGE_CAPTURE); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
      super.onActivityResult(requestCode, resultCode, data); 
      switch (requestCode) { 
      case RESULT_LOAD_IMAGE: 
      if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK & null != data) { 
        selectedImage = data.getData(); 
        imageView.setImageURI(selectedImage); 
       } 
        break; 

      case REQUEST_IMAGE_CAPTURE: 
       if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
        try { 
         selectedImage = imageUri; 
         getContentResolver().notifyChange(selectedImage,null); 
         imageView.setImageURI(null); 
         imageView.setImageURI(imageUri); 
         } catch (Exception e) { 
          Toast.makeText(this, "Failed to load",Toast.LENGTH_SHORT).show(); 
         Log.e("Camera", e.toString()); 
          } 
         Log.e("A", "AAA"); 
         } 
       } 
      } 
+0

它不起作用:/ – ernbykz

+0

請編輯您的代碼 –

+0

我想我可以編輯代碼,那麼如何解決這個問題呢? – ernbykz

相關問題