2013-11-26 77 views
0

在我的項目中,我需要創建動畫,其中一個圖像按鈕從底部向上移動。我在ObjectAnimator類的幫助下創建了動畫,但問題在於我給出了浮點數的值,但是當我在不同的設備(7英寸平板電腦和不同的hdpi手機)上嘗試它時,動畫並不合適。請幫幫我。沒有得到正確的動畫

回答

0

在資源創建一個動畫文件夾,創建這樣

<?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:fromYDelta="0%p" 
     android:toYDelta="-35%p" 
     android:duration="500" 
     /> 
</set> 

一個XML文件,並在這樣的Java代碼中使用此動畫。

Animation slideout; 

slideout = AnimationUtils.loadAnimation(this, R.anim.yourxmlfile); 
slideout.setAnimationListener(this); 
view.startAnimation(slideout); 

並將AnimationListener實現爲您的活動。嘗試這個。

+0

它對你有用嗎? – nilkash

+0

我已經試過了,它也在工作,但不適用於所有類型的設備,我的意思是在不同的設備上,imagebutton不會去特定的地方。在一部手機上它的工作完美,但在7英寸的平板電腦上,它並沒有達到完美的地方,它正在停止。 –

0

首先你必須得到高度,然後使用此代碼爲對象的動畫

final ObjectAnimator oa = ObjectAnimator.ofFloat(myimageview[id], 
       "translationY", hight); 

,然後開始後,讓您的設備的高度和寬度在運行時這樣

Display display = getWindowManager().getDefaultDisplay(); 
    hight = (float) (display.getHeight()/2); 

的動畫

oa.start(); 
+0

希望這會幫助你 –

+0

它不適合我。當我使用這段代碼時,我的imageButton不是movig。請幫助我 –

+0

使用高亮作爲neglect final ObjectAnimator oa = ObjectAnimator.ofFloat(myimageview [id], 「translationY」,-hight); –

0

試試這個:

在的onCreate()你的活動寫overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);

在res文件夾,創建動畫文件夾,並將這兩個文件:

slide_in_up.xml:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="100%p" 
android:duration="@android:integer/config_longAnimTime"/> 

slide_out_up.xml:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="0" 
android:duration="@android:integer/config_longAnimTime" /> 

希望這會有所幫助。