gpt4 book ai didi

android - 拉伸(stretch)/缩放 View /位图的特定区域

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:30 24 4
gpt4 key购买 nike

我正在尝试将 ScaleAnimation 应用于 View,但我有一个有点非传统的要求:我只想缩放 View 的一个非常特定的区域。

使用现有的 ScaleAnimation 类,我可以轻松地统一缩放 View 。我还可以设置一个轴心点来缩放 View 。下面是一个例子:

smiley scaled from bottom

这很简单。但我希望实现以下目标,这是仅缩放 View 的特定区域(或者在本例中是笑脸中间的一个小水平矩形)的结果:

smiley with specific region scaled

我仔细研究了 ScaleAnimation 的源代码,发现以下函数似乎负责缩放:

protected void applyTransformation(float interpolatedTime, Transformation t) {
float sx = 1.0f;
float sy = 1.0f;

if (mFromX != 1.0f || mToX != 1.0f) {
sx = mFromX + ((mToX - mFromX) * interpolatedTime);
}
if (mFromY != 1.0f || mToY != 1.0f) {
sy = mFromY + ((mToY - mFromY) * interpolatedTime);
}

if (mPivotX == 0 && mPivotY == 0) {
t.getMatrix().setScale(sx, sy);
} else {
t.getMatrix().setScale(sx, sy, mPivotX, mPivotY);
}
}

由于此函数只是对矩阵应用缩放操作,所以我认为可以使用某种矩阵操作来编写自定义缩放动画,但我缺乏线性代数知识。这个问题的解决方案可能要简单得多,因为看起来其他人也会遇到这个问题,但我还没有找到任何解决方案。提前致谢。

最佳答案

矩阵变换整个位图。您不能使用单个矩阵缩放区域。

关于android - 拉伸(stretch)/缩放 View /位图的特定区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225973/

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