2012-10-22 2 views
1

Sur Click d'un Textview je suis en train de faire l'animation de cadre à l'aide morceau de code suivantanimation ne pas répéter sur Click image

imgclickanimation.setBackgroundResource(R.anim.clickframeanimation); 
ribinclickanimation= (AnimationDrawable) imgclickanimation.getBackground(); 

et Click du TextView je commence l'animation à l'aide ribinclickanimation.start();

clickframeanimation est le fichier anim. et ribinclickanimation est l'objet de AnimationDrawable Il fonctionne correctement pour la première fois quand je clique, mais quand je clique pour la deuxième fois en avant rien ne se passe quelqu'un peut me suggérer une aide.

* CODE: *

package com.example.tryfinal; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.drawable.AnimationDrawable; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ImageView; 
import android.widget.ScrollView; 
import android.widget.TextView; 

public class MainActivity extends Activity implements OnClickListener 
{ 
    TextView imgclickanimation; 
    AnimationDrawable ribinclickanimation;//,ribinanimation; 
    int duration=200; 
    ScrollView scroll; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     imgclickanimation= (TextView) findViewById(R.id.imgclickanimation); 



     imgclickanimation.setOnClickListener(this); 
     imgclickanimation.setBackgroundResource(R.anim.clickframeanimation); 
     ribinclickanimation= (AnimationDrawable) imgclickanimation.getBackground(); 
    } 
    public void onClick(View arg0) 
    { 
     if(arg0.getId()==imgclickanimation.getId()) 
     { 
      imgclickanimation.setBackgroundResource(R.anim.clickframeanimation); 
      ribinclickanimation.start(); 

     } 
    } 
} 

et mon clickframeanimation.xml est:

<?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/ribin3" android:duration="200" /> 
    <item android:drawable="@drawable/ribin4" android:duration="200" /> 
    <item android:drawable="@drawable/ribin3" android:duration="200" /> 
</animation-list> 
+0

Pourquoi ne pas vous postez un peu plus code pour mieux comprendre votre problème. – 13hsoj

+0

Je veux dire le code entourant ceci, l'auditeur sur le textview, l'activité etc. Il pourrait y avoir quelque chose de mal à cela. – 13hsoj

+0

'\t onClick public void (Voir arg0) \t { \t \t // TODO méthode généré automatiquement stub \t \t if (arg0.getId() == imgclickanimation.getId()) \t \t { \t \t \t ribinclickanimation.start(); Je ne fais que commencer l'animation. et si je place la propriété 'android: oneshot' =" false "dans le fichier xml, cela recommencerait l'animation encore et encore. ce que je veux sur le clic de textview – sankettt

Répondre

3

Voici le code de mise à jour

package com.example.tryfinal; 

import android.app.Activity; 
import android.graphics.drawable.AnimationDrawable; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ScrollView; 
import android.widget.TextView; 

public class MainActivity extends Activity implements OnClickListener { 

TextView imgclickanimation; 
    AnimationDrawable ribinclickanimation;//,ribinanimation; 
    int duration=200; 
    ScrollView scroll; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     imgclickanimation= (TextView) findViewById(R.id.imgclickanimation); 
     imgclickanimation.setOnClickListener(this); 
     imgclickanimation.setBackgroundResource(R.anim.clickframeanimation); 
     ribinclickanimation= (AnimationDrawable) imgclickanimation.getBackground(); 
    } 
    public void onClick(View arg0) 
    { 
     ribinclickanimation.stop(); 
     if(arg0.getId()==imgclickanimation.getId()) 
     { 
      imgclickanimation.setBackgroundResource(R.anim.clickframeanimation);//It will still work without this line. There is no need to set the resource again. 

      ribinclickanimation.start(); 

     } 
    } 

} 
+0

Quelle est la disposition de la table? – sankettt

+0

son fonctionnement parfaitement bien .. merci une tonne .. :) – sankettt

+0

Si cela a fonctionné, s'il vous plaît marquer le poste comme la réponse. – 13hsoj