2013-06-03 5 views
0

Я пытаюсь сделать анимацию кадра в ImageView при щелчке. Но ImageView's Image осваивает эту анимацию. Какая может быть проблема? и setimagerresource(0) не работает. вот код:Overlapping Drawable animation

ImageView iv = (ImageView) v.findViewById(R.id.imageView1); 
iv.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     v.setBackgroundResource(R.drawable.reloadanim); 
     AnimationDrawable frameAnimation = (AnimationDrawable) v.getBackground(); 
     frameAnimation.start(); 

    } 
}); 

расположение:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView2" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:text="TextView" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView1" 
     android:paddingLeft="5dp" 
     android:paddingTop="5dp" 
     android:text="TextView" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:paddingLeft="5dp" 
     android:text="Large Text" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/textView3" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="25dp" 
     android:src="@drawable/reload"/> 

</RelativeLayout> 

Без этой линии android:src="@drawable/reload" анимация не может быть видно на всех

анимации:

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

    <item 
     android:drawable="@drawable/reload1" 
     android:duration="400"/> 
    <item 
     android:drawable="@drawable/reload2" 
     android:duration="400"/> 
    <item 
     android:drawable="@drawable/reload3" 
     android:duration="400"/> 
    <item 
     android:drawable="@drawable/reload" 
     android:duration="400"/> 

</animation-list> 

ответ

0

Редактировать код с мой. Анимация будет добавлена ​​в ImageView, а затем анимирована, когда вы коснетесь экрана.

MainActivity.java

AnimationDrawable frameAnimation; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ImageView iv = (ImageView) v.findViewById(R.id.imageView1); 
    iv.setBackgroundResource(R.drawable.reload); 
    frameAnimation = (AnimationDrawable) iv.getBackground(); 
} 

public boolean onTouchEvent(MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
    frameAnimation.start(); 
    return true; 
    } 
    return super.onTouchEvent(event); 
} 

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/textView2" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:text="TextView" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/textView1" 
    android:paddingLeft="5dp" 
    android:paddingTop="5dp" 
    android:text="TextView" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:paddingLeft="5dp" 
    android:text="Large Text" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView3" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="25dp"/> 

</RelativeLayout> 

reload.xml

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:oneshot="false" > 
<item 
    android:drawable="@drawable/reload1" 
    android:duration="400"/> 
<item 
    android:drawable="@drawable/reload2" 
    android:duration="400"/> 
<item 
    android:drawable="@drawable/reload3" 
    android:duration="400"/> 
<item 
    android:drawable="@drawable/reload" 
    android:duration="400"/> 
</animation-list>