【问题标题】:Positioning confetti定位五彩纸屑
【发布时间】:2018-02-11 11:53:06
【问题描述】:

我正在按照下面的教程添加五彩纸屑。

final KonfettiView konfettiView = (KonfettiView)findViewById(viewKonfetti);
            konfettiView.build()
                    .addColors(Color.RED, Color.GREEN)                
                    .setSpeed(1f, 5f)
                    .setFadeOutEnabled(true)
                    .setTimeToLive(2000L)
                    .addShapes(Shape.RECT, Shape.CIRCLE)            
                    .setPosition(0f, -359f, -359f, 0f)
                    .stream(200, 5000L);

我希望五彩纸屑从右上角而不是左上角显示。我应该在setPosition 方法中输入什么值?这种方法是如何工作的?

我正在关注这个https://github.com/DanielMartinus/Konfetti,但没有太多关于方法及其参数的信息。

【问题讨论】:

  • 好的,如果你查看confetti.kt文件;有你想要的位置和编辑信息可能对你有帮助吗?看看它

标签: android android-animation


【解决方案1】:

以下是编辑代码,它会为您提供所需的输出:

fun setPosition(x: Float, y: Float): ParticleSystem {
    location.setX(x)
    location.setY(y)
    return this
}

/**
 * Set position range to emit particles from
 * A random position on the x-axis between [minX] and [maxX] and y-axis between [minY] and [maxY]
 * will be picked for each confetti.
 * @param [maxX] leave this null to only emit from [minX]
 * @param [maxY] leave this null to only emit from [minY]
 */
fun setPosition(minX: Float, maxX: Float? = null, minY: Float, maxY: Float? = null): ParticleSystem {
    location.betweenX(maxX, maxX)
    location.betweenY(minY, maxY)
    return this
}

请参考this answer 以相应地组装/调整方向和坐标。

还有;如果你只想放坐标;正如您所发现的,有一个类 MotionEvent 具有 getX()getY() 方法,它们返回相对于视图的坐标。

希望对你有帮助....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2018-06-02
    相关资源
    最近更新 更多