gpt4 book ai didi

android - 如何将 imageview scaletype 设置为 topCrop

转载 作者:可可西里 更新时间:2023-11-01 19:09:59 30 4
gpt4 key购买 nike

我正在编写 android 代码并且有一个 ImageView 。我想将此的 scaletype 设置为 topcrop。我可以在选项中找到 centercrop,但这不是我的要求。我该怎么办?

最佳答案

自定义 Android ImageView,用于缩放包含的可绘制对象。

import android.content.Context;
import android.graphics.Matrix;
import android.widget.ImageView;

/**
* ImageView to display top-crop scale of an image view.
*
* @author Chris Arriola
*/
public class TopCropImageView extends ImageView {

public TopCropImageView(Context context) {
super(context);
setScaleType(ScaleType.MATRIX);
}

@Override
protected boolean setFrame(int l, int t, int r, int b) {
final Matrix matrix = getImageMatrix();

float scale;
final int viewWidth = getWidth() - getPaddingLeft() - getPaddingRight();
final int viewHeight = getHeight() - getPaddingTop() - getPaddingBottom();
final int drawableWidth = getDrawable().getIntrinsicWidth();
final int drawableHeight = getDrawable().getIntrinsicHeight();

if (drawableWidth * viewHeight > drawableHeight * viewWidth) {
scale = (float) viewHeight / (float) drawableHeight;
} else {
scale = (float) viewWidth / (float) drawableWidth;
}

matrix.setScale(scale, scale);
setImageMatrix(matrix);

return super.setFrame(l, t, r, b);
}
}

https://gist.github.com/arriolac/3843346

关于android - 如何将 imageview scaletype 设置为 topCrop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783358/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com