在 Android 上使用 scaletype centerCrop 时如何调整 ImageView 的裁剪量?
Posted
技术标签:
【中文标题】在 Android 上使用 scaletype centerCrop 时如何调整 ImageView 的裁剪量?【英文标题】:How to adjust how much an ImageView is cropped by when using scaletype centerCrop on Android? 【发布时间】:2020-07-27 18:55:52 【问题描述】:我在 LinearLayout 中有一个 ImageView (PhotoView),并且我正在应用 scaletype 中心裁剪,但裁剪得有点过多并且显得过于放大。我该如何解决这个问题?
<LinearLayout
android:id="@+id/photoViewContainer"
android:layout_
android:layout_
android:background="@android:color/holo_purple"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0">
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/mainImageView"
android:layout_
android:layout_
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:background="@android:color/black" />
</LinearLayout>
【问题讨论】:
【参考方案1】:我不确定您是否可以控制裁剪,但使用 scaletype="fitXY"
并提供一些填充对我有用。
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/mainImageView"
android:layout_
android:layout_
android:scaleType="fitXY"
android:padding="16dp"
android:adjustViewBounds="true"
android:background="@android:color/black" />
在这种情况下,scaletype="fitXY"
会将图像压缩到屏幕大小并填充它以使其居中。
还有一个我听说过的hack,你用负填充替换填充,这会缩小图像,但我没有尝试过。
【讨论】:
以上是关于在 Android 上使用 scaletype centerCrop 时如何调整 ImageView 的裁剪量?的主要内容,如果未能解决你的问题,请参考以下文章
Android 4.3 ImageView ScaleType.MATRIX
图文讲解Android ImageView的ScaleType,帮你彻底搞明白