- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找 Google Photos 应用程序风格的图像处理。我对图像处理有点陌生。任何关于如何使图像的裁剪矩形与裁剪矩形大小相同、旋转(旋转图像和裁剪矩形)、图像拉直(包括如何获得那种角度 slider 类型的 UI)的任何线索都会很棒。如果有一些库具有这些功能,那也可以。
最佳答案
Square有一个用于加载和播放图像的库。以下是一些功能:
- Handling ImageView recycling and download cancelation in an adapter.
- Complex image transformations with minimal memory use.
- Automatic memory and disk caching.
在他们的网站上有关于如何使用该库的详细信息。查看:Picasso
您需要添加的 gradle 行是:
compile 'com.squareup.picasso:picasso:2.5.2'
它非常易于使用。以下是我在示例应用程序中将图像加载和调整到 ImageView 的方式:
Picasso.with(mContext).load("http://cdn0.vox-cdn.com/uploads/chorus_asset/file/798874/DSCF1913.0.jpg").fit().centerCrop().into(imageView);
如您所见,我在这里使用了 fit().centerCrop()
。这将调整图像以按比例适合我的 imageView
。您可以尝试不同形式的图像转换以更好地满足您的需求。
您还可以从可绘制文件夹或直接从文件加载图像:
Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
编辑:看来我第一次阅读时并没有完全理解您的问题。以下是有关您要实现的目标的一些提示。可能不是您想要的,但我认为这可能是一个开始。
如果您想旋转图像,可以使用 RequestCreator.rotate(float degrees)
与 Picasso 一起完成。这是 RequestCreator 的文档.
至于裁剪图像(在指定的矩形内,如您所示),有: Android crop .
或者您可以使用 Picasso Transformations并创建一个转换,如
CropTransformation(Top, Center, Bottom);
然后请 Picasso 像这样变换图像:
Picasso.with(mContext).load(R.drawable.demo)
.transform(transformation).into((ImageView) findViewById(R.id.image));
此外,正如@Amit K Saha 在他的回答中所说,您可以使用一些 Android SDK 效果。检查 android.media.effect
。
希望这对您有所帮助。
关于android - Google 相册应用程序风格的图像裁剪、拉直和平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617081/
我是一名优秀的程序员,十分优秀!