2016-10-15 10 views
0

Как обрезать изображение, в котором я использую picasso, чтобы правильно подогнать макетную ширину макетов и фиксированную высоту, например. 500 для обеих снимков, сделанных в альбомном режиме и в портретном режиме. Они могут быть уменьшены или уменьшены, но не слишком сильно влияют на качество. Немного похоже на то, как instagram соответствует их изображениям в прокручиваемом виде, таком как квадраты. Мне нужно, чтобы все изображения соответствовали ширине макетов и определенной высоте.Как правильно обрезать изображение в соответствии с представлением изображения

Заранее благодарен.

Это мой код:

if(item.getTitle().equals("Add Picture")){ 
    verifyStoragePermissions(MainActivity.this); 
    Intent loadPicture = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    startActivityForResult(loadPicture, RESULT_LOAD_IMAGE); 
} 

И

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 
      Uri selectedImage = data.getData(); 

      ImageView imageView = (ImageView) findViewById(R.id.loadPictureImageView); 

      mlinearLayout = (LinearLayout) findViewById(R.id.imageScrollLayout); 
      int width = mlinearLayout.getWidth(); 

      //Picasso.with(this).load(selectedImage).resize(width, 500).centerCrop().into(imageView); 
      //Picasso.with(this).load(selectedImage).resize(width, 500).centerInside().into(imageView); 
      Picasso.with(this).load(selectedImage).fit().into(imageView); 

     } 
    } 

И мой XML макет и ImageView:

<LinearLayout 
      android:id="@+id/imageScrollLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dp" 
      android:orientation="vertical" 
      android:layout_below="@+id/profile_layout"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="400dp" 
       android:id="@+id/loadPictureImageView" 
       android:elevation="10dp" /> 

     </LinearLayout> 

ответ

0

Используйте scaleType атр через XML на ImageView или использовать Пикассо встроенные методы обработки изображений для определения масштаба и размера , Хороший учебник можно найти here.