2017-02-27 20 views
0

我使用CircleImageView實例來顯示圖像並將其從圖庫中加載拾取或使用相機使用Picasso庫捕獲。
我正面臨Android 7.0上的一個問題,即圖像在調整大小時未加載到圖像視圖中。否則,如果沒有調整大小,可以在其他操作系統上正常工作。

Picasso CircleImageView在Android 7.0中調整大小()問題,同時從圖庫中選擇圖像

下面是我的代碼:

onActivityResult() method 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == REQUEST_PERMISSION) { 
      PermissionChecker.checkPermission(activity); 
     } else if (resultCode == Activity.RESULT_OK) { 
      if (requestCode == SELECT_FILE) 
       onSelectFromImageGallery(data); 
      else if (requestCode == REQUEST_CAMERA) 
       onCaptureImageResult(data); 
     } 
    } 


onSelectFromImageGallery() method 

public void onSelectFromImageGallery(Intent data) { 
     Uri imgUri; 
     if (data != null) { 
      imgUri = data.getData(); 
      if (imgUri != null) { 
       profileImagePath = imgUri.toString(); 
       CommonUtils.displayImage(activity, imgUri.toString(), imageView); 
      } else if (data.getClipData() != null) { 
       if (!StringUtils.isNullOrEmpty(data.getClipData().getItemAt(0).toString())) { 
        imgUri = data.getClipData().getItemAt(0).getUri(); 
        profileImagePath = imgUri.toString(); 
        CommonUtils.displayImage(activity, imgUri.toString(), imageView); 
       } 
      } 
     } 
    } 


displayImage() method: 

public static void displayImage(Context context, final String imageUri, final ImageView imageView) { 
     Picasso.with(context) 
       .load(imageUri) 
       .error(R.drawable.default_profile_pic) 
       .placeholder(R.drawable.default_profile_pic) 
       .resize(200, 200) 
       .centerCrop() 
       .onlyScaleDown() 
       .into(imageView, new Callback() { 
      @Override 
      public void onSuccess() { 
      } 

      @Override 
      public void onError() { 
       Log.e(TAG, "Unknown error found while setting the image."); 
      } 
     }); 
    } 

圖片將開始加載,一旦我刪除resize()centerCrop()onlyScaleDown()從代碼。

+2

刪除.resize(),並使用固定的高度和寬度在XML進行的ImageView與propertty::嘗試做這樣的事情SCALETYPE = 「fitxy」。 –

+0

它不工作。我的不是ImageView,它是CircleImageView。所以,它拋出錯誤,如:'java.lang.IllegalArgumentException:ScaleType FIT_XY不支持.' – pratik03

回答

0

您可以像調整視圖一樣調整圖像大小。從Piccaso

imageView.getLayoutParams().height = 200; 
    imageView.getLayoutParams().width = 200; 
    imageView.requestLayout();