2014-02-28 126 views
1

在Android應用程序中,我試圖爲按鈕設置動畫效果。我提到這一點: In Android, Display pressed button animation in OnClick?android:通過xml按下動畫按鈕

這是按鈕圖像:

enter image description here

觸摸時,我想這顯示一個旋轉的動畫。對於這一點,我創建了相同的各種旋轉角度是這樣的:

enter image description here enter image description here enter image description here

我創建了一個自定義的button.xml這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_pressed="true" android:drawable="@anim/anim_refresh_button"> </item> 
    <item android:state_focused="true" android:drawable="@drawable/icon_refresh"> </item> 
    <item android:drawable="@drawable/icon_refresh"></item> 
</selector> 

然後,動漫,我創建anim_refresh_button.xml(我在上面'state_pressed'中提到):

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> 

    <item android:drawable="@drawable/icon_refresh_1" android:duration="500"/> 
    <item android:drawable="@drawable/icon_refresh_2" android:duration="500" /> 
    <item android:drawable="@drawable/icon_refresh_3" android:duration="500" /> 
    <item android:drawable="@drawable/icon_refresh_4" android:duration="500" /> 

</animation-list> 

當我按下按鈕時,它有點動畫。這意味着它會轉到上面的動畫列表中的一個圖像,然後返回到它的狀態。我試圖將持續時間增加到1000,懷疑它不能注意到動畫的速度很快。但是,徒然。我想要箭頭按下時旋轉。這個旋轉效果應該清晰地顯示給用戶。有人可以幫忙嗎?

回答

1

試試這個:

RotateAnimation anim = new RotateAnimation(0.0f, 360.0f , Animation.RELATIVE_TO_SELF, .5f, Animation.RELATIVE_TO_SELF, .5f); 
anim.setInterpolator(new LinearInterpolator()); 
anim.setRepeatCount(Animation.INFINITE); 
anim.setDuration(3000); 
iv.setAnimation(anim); 
iv.startAnimation(anim); 
0

使全球這種方法和線程在您的活動是這樣的: -

private void Animation() { 
      ImageView img = (ImageView)findViewById(R.id.anim_image); 
      anim = (AnimationDrawable)img.getDrawable(); 
      img.post(run); 
     } 

     Runnable run = new Runnable() { 
      @Override 
      public void run() { 
       anim.start(); 
      } 
     }; 

現在只需撥打

Animation(); 
在OnCreate中

()的活動

這是XML圖像視圖代碼

<ImageView 
      android:id="@+id/anim_image" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/rel" 
      android:layout_below="@+id/cmnttext" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_marginTop="40dp" 
      android:src="@anim/animationofdownloading" /> 

,這是圖像的SRC animationofdownloading

<item 
    android:drawable="@drawable/cloud_first" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_sec" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_thi" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_four" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_fiv" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_six" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_sev" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_eig" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_nin" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_ten" 
    android:duration="40"/> 
<item 
    android:drawable="@drawable/cloud_ele" 
    android:duration="40"/> 

希望它會幫助你 幸運的傢伙的最好的:)

1

Just Ch

android:oneshot="false" 

相反

android:oneshot="true" 
:在你的動畫列表(anim_refresh_button.xml)安格本