Fügen Sie anzeigen, um constraintLayout mit Einschränkungen, ähnlich wie ein weiteres Kind

Ich habe eine Einschränkung layout (alpha9) mit Ansichten verbreiten alle über Sie, und ich habe eine Besondere Bildansicht, die ich brauche, um zu replizieren, und fügen Sie mehr, wie es.
Das layout ist wie folgt :
Fügen Sie anzeigen, um constraintLayout mit Einschränkungen, ähnlich wie ein weiteres Kind

Zweck, zu animieren, 5 jener "Münze" imageViews, wenn die Taste gedrückt wird. Die imageViews ich muss generiert sha müssen die genauen Eigenschaften der Bildansicht hinter der Taste unten (mit denselben Einschränkungen)
Fügen Sie anzeigen, um constraintLayout mit Einschränkungen, ähnlich wie ein weiteres Kind

Was ich versucht habe ist Folgendes :

private ImageView generateCoin() {
    ImageView coin = new ImageView(this);
    constraintLayout.addView(coin,-1,originCoinImage.getLayoutParams());//originCoinImage is the imageView behind the button
    coin.setImageResource(R.drawable.ic_coin);
    coin.setScaleType(ImageView.ScaleType.FIT_XY);
    coin.setVisibility(View.VISIBLE);
    return coin;
}

Und es ist fehlgeschlagen. EDIT: Es versäumt zu zeigen, was ich wollte , manchmal zeigt es eine Münze in der oberen linken Ecke des Bildschirms , und manchmal nicht alles zeigen, aber so oder so , die Anzahl der Münzen-Schritten (d.h. die animation versucht, um wirklich etwas zu tun und rufen dann den onAnimationFinished Methode)

Habe ich für die animation der Bibliothek EasyAndroidAnimations

der code ist wie folgt :

MainActivity.java

@OnClick(R.id.addCoin)
public void addCoin() {
//       for (int x = 0 ; x < 5 ; x++){
    final View newCoin = generateCoin();

    sendCoin(newCoin, 300, new AnimationListener() {
        @Override
        public void onAnimationEnd(com.easyandroidanimations.library.Animation animation) {
            incrementCoins();
            constraintLayout.removeView(newCoin);
            shakeCoin(targetCoinImage, 200, null);
        }
    });
//       }
}

private void incrementCoins() {
    coins++;
    coinNumber.setText(String.valueOf(coins));
}

private void sendCoin(View coinView, long duration, AnimationListener listener) {
    new TransferAnimation(coinView)
            .setDestinationView(targetCoinImage)
            .setDuration(duration)
            .setInterpolator(new AccelerateDecelerateInterpolator())
            .setListener(listener)
            .animate();
}

private void shakeCoin(View coinView, long duration, AnimationListener listener) {
    new ShakeAnimation(coinView)
            .setDuration(duration)
            .setShakeDistance(6f)
            .setNumOfShakes(5)
            .setListener(listener)
            .animate();
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="seaskyways.canvasanddrawtest.MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:text="Coins : "
        android:textSize="30sp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/coinNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="16dp"
        android:layout_marginStart="8dp"
        android:text="0"
        android:textColor="@color/colorPrimary"
        android:textSize="50sp"
        android:textStyle="normal|bold"
        app:layout_constraintBottom_toBottomOf="@+id/textView"
        app:layout_constraintLeft_toRightOf="@+id/textView"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="@+id/textView" />

    <ImageView
        android:id="@+id/coinOrigin"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:scaleType="fitXY"
        app:layout_constraintBottom_toBottomOf="@+id/addCoin"
        app:layout_constraintLeft_toLeftOf="@+id/addCoin"
        app:layout_constraintTop_toTopOf="@+id/addCoin"
        app:srcCompat="@drawable/ic_coin"
        app:layout_constraintRight_toRightOf="@+id/addCoin" />

    <ImageView
        android:id="@+id/coinTarget"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginLeft="16dp"
        android:layout_marginStart="16dp"
        android:scaleType="fitXY"
        app:layout_constraintBottom_toBottomOf="@+id/coinNumber"
        app:layout_constraintLeft_toRightOf="@+id/coinNumber"
        app:layout_constraintTop_toTopOf="@+id/coinNumber"
        app:srcCompat="@drawable/ic_coin" />

    <Button
        android:id="@+id/addCoin"
        android:layout_width="0dp"
        android:layout_height="75dp"
        android:layout_marginBottom="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginStart="16dp"
        android:text="Button"
        android:textAlignment="center"
        android:textSize="36sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>
Was tun und bekommen als Ausgabe, wenn du den Knopf drückst?/
Wenn ich das richtig verstehe, wollen Sie die Münze, um zu gehen von unten-Taste, um die oberste Münze und wenn die animation beendet ist, wird die Anzahl der Münzen erhöhen um eins. So dass Sie wollen, erhöhen Sie durch fünf, was bedeutet, dass 5 der Münzen, die animiert werden soll, von der unteren zu der oberen Münze. Bin ich in der Nähe?
Genau das, was ich will , allerdings soll ich tun es mit einer Münze , dann eine million, wird keinen Unterschied machen, @mihanovak1024
So soll sich die animation nur gehen senkrecht nach oben? Oder muss es verschieben oder so was? Welche animation hast du im Sinn? Wird eine einfache TranslateAnimation tun?
es geht nicht um die animation , es geht um die Bildansicht wird direkt programmgesteuert

InformationsquelleAutor Seaskyways | 2016-10-03

Schreibe einen Kommentar