如何正确裁剪图像以适合 imageview
Posted
技术标签:
【中文标题】如何正确裁剪图像以适合 imageview【英文标题】:How to properly crop an image to fit imageview 【发布时间】:2016-10-15 22:01:35 【问题描述】:如何裁剪我使用毕加索的图像以正确适应布局父宽度和固定高度,例如在横向模式和纵向模式下拍摄的照片均为 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_
android:layout_
android:layout_marginTop="5dp"
android:orientation="vertical"
android:layout_below="@+id/profile_layout">
<ImageView
android:layout_
android:layout_
android:id="@+id/loadPictureImageView"
android:elevation="10dp" />
</LinearLayout>
【问题讨论】:
【参考方案1】:通过ImageView
上的xml 使用scaleType
attr 或使用毕加索内置的图像处理方法来确定比例和大小。一个很好的教程可以找到here。
【讨论】:
以上是关于如何正确裁剪图像以适合 imageview的主要内容,如果未能解决你的问题,请参考以下文章
当图像重新缩放以适合画布时,织物 js 上的裁剪功能无法正常工作