gpt4 book ai didi

android - 显示半透明圆圈的快速动画

转载 作者:太空狗 更新时间:2023-10-29 15:02:35 24 4
gpt4 key购买 nike

我正在使用 Qt for Android 开发一个简单的测试应用程序。我试图通过显示半透明圆来为屏幕上的每个用户触摸设置动画,例如将其半径从 0 增加到 100。

我在所有小部件之上添加了一个自定义 QLabel。我正在尝试通过使用自定义属性的 QPropertyAnimation 更新它来为其 QPixmap 设置动画

Q_PROPERTY(QRect circleGeometry READ getCircleGeometry WRITE setCircleGeometry)

二传手是:

void CircleLabel::setCircleGeometry(QRect circleGeometry)
{
QPixmap pixmap(this->size());
pixmap.fill(Qt::transparent);

QPainter painter(&pixmap);
painter.setOpacity(0.2);
painter.setPen(QPen(Qt::transparent));
painter.setBrush(QBrush(Qt::white));
painter.setRenderHint(QPainter::Antialiasing);

painter.drawEllipse(circleGeometry);

this->setPixmap(pixmap);
}

我明白了,setter 对于动画来说太重了,所以它在我的 android 设备上运行很慢。您能否建议我如何修改我的动画以使其快速流畅。

最佳答案

所以...我的解决方案是在应用程序启动时创建一次 QPixmaps vector ,然后我的 CircleLabel::setCircleGeometry 将如下所示:

void CircleLabel::setCircleGeometry(int currentIdx)
{
this->setPixmap(preGeneratedPixmaps[currentIdx]);
}

关于android - 显示半透明圆圈的快速动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102638/

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