2017-10-18 85 views
0

我在設計視圖中將視圖放置在android設備屏幕右邊界之外。我想播放動畫並將其從屏幕外移動到屏幕上,以達到入門效果,沒有任何幻想。在Android動畫的deltaX中,我應該使用像素還是百分比?

但是自從我一直在使用deltaX參數。什麼是正確的數字放下?我應該用像素還是百分比?

當我給出正確的輸入時,正確的事件被激發,但無法找到視圖,它根本不顯示在屏幕上。

這裏是我的問題的代碼:

動畫:

<?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> 

有問題的看法:

<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"> 

回答

0

播放動畫使用AnimationAnimationUtils

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

希望它有幫助!

0

首先翻譯網格視圖移出屏幕,然後播放動畫

// 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

並未真正發揮作用,我相信使用動畫資源文件是比較合理的。 – VictorCharlie23

+0

這個playEnterAnimation()方法只有當你第一次使用代碼將視圖翻譯出屏幕時才起作用//將網格視圖翻譯出屏幕 GridView gridView = findViewById(R.id.android_gridview_menu); Display display = getWindowManager()。getDefaultDisplay(); Point size = new Point(); display.getSize(size); gridView.setTranslationX(size.x); –

相關問題