2 votes

Comment obtenir la vue animée

Voici le fichier xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="150dp"
android:layout_height="match_parent">

<Button
   android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

Voici le code java

private Button text;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text = (Button)findViewById(R.id.textview);
    text.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            text.startAnimation(getScaleAnimation());

        }
    });
}

    private ScaleAnimation getScaleAnimation(){
    ScaleAnimation animation = new ScaleAnimation(1f,1.2f,1f,1.2f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
    animation.setDuration(1000);
    animation.setFillAfter(true);
    return animation;
}

Je suis en train d'effectuer une simple ScaleAnimation sur un bouton, y a-t-il un moyen d'obtenir la vue animée ?

3voto

boburShox Points 1064

Ouvrez juste anim dossier à l'intérieur res dossier. Créez un xml fichier. Vous devez ensuite créer set tag. À l'intérieur de celle-ci, vous pouvez créer scale étiquette.

Voici un exemple :

<?xml version="1.0" encoding="utf-8"?>
<set  xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">

<scale  
    android:fromXScale="0.5"
    android:toXScale="2"
    android:fromYScale="0.5"
    android:toYScale="2"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="5000"

    />

</set>

Note : n'oubliez pas d'inclure xmlns:android déclaration.

Maintenant, à l'intérieur de onCreate ou où vous voulez, mettez simplement ce qui suit. J'anime (mise à l'échelle) un bouton lorsqu'il est cliqué :

    Button but = (Button) findViewById(R.id.button1);
    but.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Animation anim = AnimationUtils.loadAnimation(AnimationActivity.this, R.anim.animation);
            but.startAnimation(anim);
    }
});

EDIT : si vous souhaitez le faire pivoter lors de la mise à l'échelle, vous pouvez placer les éléments suivants à l'intérieur de la balise xml fichier :

<rotate 
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="5000"
    />

J'espère que cela vous aidera.

0voto

Dixit Patel Points 6051

Utilisez cette méthode

Créez un fichier xml à l'intérieur /res/anim et y mettre le code ci-dessous.

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="schemas.android.com/apk/res/android"
              android:interpolator="@android:anim/linear_interpolator">

       <scale android:fromXScale="0.0" android:fromYScale="0.0"
              android:toXScale="1.0" android:toYScale="1.0" 
              android:duration="700" android:fillBefore="false" />

</set>

Placez le code ci-dessous dans le fichier java :

Animation scaleAnimation 
           = AnimationUtils.loadAnimation(this, R.anim.logoanimation); 
Btn.startAnimation(scaleAnimation);

logoanimation est le nom de mon fichier xml d'animation.

Pour en savoir plus, consultez ce site tutoriel

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X