2017-09-02 1 views
1

Ich folge dem Tutorial unten, um Konfetti hinzuzufügen.Positionierung Konfetti

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); 

Ich mag das Konfetti von oben rechts erscheint statt oben links. Welche Werte sollte ich in die Methode eingeben? Wie funktioniert diese Methode?

Ich verfolge diese https://github.com/DanielMartinus/Konfetti, aber es gibt nicht viele Informationen über die Methoden und ihre Parameter.

+0

Okay, wenn Sie in 'confetti.kt' Datei suchen; Gibt es die Informationen über den Standort und die Bearbeitung, die Ihnen auf Ihre gewünschte Weise helfen könnten? Werfen Sie einen Blick darauf – Mandy8055

Antwort

2

Hier ist der Code für die Bearbeitung, die Sie mit dem gewünschten Ausgang liefert:

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 Siehe die Orientierung und Koordinaten entsprechend montieren/einstellen.

Auch; wenn Sie nur die Koordinaten setzen möchten; Es gibt eine Klasse MotionEvent, die getX() und getY() Methoden hat, die die Koordinaten relativ zur Ansicht zurückgeben, wie Sie festgestellt haben.

Hoffe es hilft ....