gpt4 book ai didi

android - 我需要了解为什么 setImageMatrix 不起作用

转载 作者:行者123 更新时间:2023-11-30 03:22:27 26 4
gpt4 key购买 nike

我正在尝试创建一个可处理图像(移动、缩放、旋转)的 Android 应用程序(最小 SDK 14,目标 SDK 18)。我已经完成了移动部分。但是我无法使用 Matrix 进行缩放和旋转。

根据我所阅读的内容,这是我用于构建 ImageView 并使用 Matrix 进行缩放和旋转的代码。

public MyImage(Context context) {
super(context);
init();
}

public MyImage(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

public MyImage(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}

private void init() {
setScaleType(ScaleType.MATRIX);
}

public void rotate(float angle) {
Matrix m = new Matrix();
m.postRotate(angle);

setImageMatrix(m);

invalidate();
}

public void scale(float scaleFactor) {
Matrix m = new Matrix();
m.postScale(scaleFactor, scaleFactor);

setImageMatrix(m);

invalidate();
}

我曾尝试使用 Matrix 的 set* 函数,但没有用。我试图每次在旋转和缩放函数中而不是在 init 中设置缩放类型,但这没有用。我曾尝试获取 getImageMatrix 而不是每次都创建一个新矩阵(即创建一个恒等矩阵),但这没有用。

我知道旋转和缩放函数是通过调试器调用的。

显然我遗漏了一些东西。我试图了解我所缺少的东西。

上面的代码应该有效吗?我是否误解了 Matrix 的工作原理?

最佳答案

关于这个问题请看我的答案 How to maintain multi layers of ImageViews and keep their aspect ratio based on the largest one? ,该代码使用可以由您想要的任何矩阵转换的层

关于android - 我需要了解为什么 setImageMatrix 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880548/

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