2017-10-18 1 views
0

Ich habe in der Designansicht eine Ansicht direkt außerhalb der rechten Grenze des Android-Gerätebildschirms platziert. Ich möchte eine Animation abspielen und sie von außerhalb des Bildschirms auf den Bildschirm bewegen, um einen Eingangseffekt zu erzielen, nichts Besonderes.Soll ich im DeltaX einer Android-Animation Pixel oder Prozent verwenden?

Allerdings habe ich seitdem mit den DeltaX-Parametern gekämpft. Wie lauten die richtigen Zahlen? Soll ich mit Pixel oder Prozent gehen?

Wenn ich die richtige Eingabe gebe, das richtige Ereignis wurde ausgelöst, aber die Ansicht ist nirgendwo zu finden, es wird überhaupt nicht auf dem Bildschirm angezeigt.

Hier ist mein problematischer Code:

Animation:

<?xml version="1.0" encoding="utf-8"?> 
<set 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:anim/linear_interpolator" 
android:fillAfter="true"> 

<translate 
    android:fromXDelta="100%" 
    android:toXDelta="0%" 
    android:duration="300" /> 
</set> 

Die Ansicht in Frage:

<GridView 
    android:id="@+id/android_gridview_menu" 
    android:layout_width="80dp" 
    android:layout_height="0dp" 
    android:background="#ffffff" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintTop_toTopOf="parent" 
    app:layout_constraintVertical_bias="0.0" 
    app:layout_constraintLeft_toRightOf="@+id/MainUI" 
    android:layout_marginLeft="0dp"> 

Antwort

0

Um eine Animation Animation und AnimationUtils verwenden zu spielen.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), 
      R.anim.animation); // R.anim.animation is your animation xml. 

    GridView layout = (GridView) findViewById(R.id.android_gridview_menu); 
    layout.startAnimation(animation); 
} 

Ich hoffe, es hilft!

0

allererst die Rasteransicht aus dem Bildschirm übersetzen und dann Animation

// Translating grid view out of the screen 
GridView gridView = findViewById(R.id.android_gridview_menu); 
Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
gridView.setTranslationX(size.x); 


// Call this method to bring grid view from right by animation 
private void playEnterAnimation(){ 
    GridView gridView = findViewById(R.id.android_gridview_menu); 
    gridView.animate().translationX(0).setDuration(200).setInterpolator(new AccelerateDecelerateInterpolator()).start(); 
} 
+0

Spielt nicht wirklich funktionieren, glaube ich mit der Anime-Ressource-Datei mehr zumutbar ist. – VictorCharlie23

+0

Diese playEnterAnimation() -Methode funktioniert nur, wenn Sie die Ansicht zuerst aus dem Bildschirm übersetzen, indem Sie den Code verwenden // Rasteransicht aus dem Bildschirm übersetzen GridView gridView = findViewById (R.id.android_gridview_menu); Anzeige display = getWindowManager(). GetDefaultDisplay(); Punktgröße = neuer Punkt(); display.getSize (Größe); gridView.setTranslationX (Größe.x); –

Verwandte Themen