segunda-feira, 22 de abril de 2013

Criando um texto Animado

Programando em Android.
Códigos completo sem erros, testado.

Criando uma nova aplicação: Texto Animado















na pasta, res/ layout
crie um xml com o nome: animation_2.xml
adicione seguintes códigos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:padding="10dip"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

    <ViewFlipper android:id="@+id/flipper"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:flipInterval="2000"
                android:layout_marginBottom="20dip" >
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_1"/>
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_2"/>
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_3"/>
                <TextView
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textSize="26sp"
                        android:text="@string/animation_2_text_4"/>
    </ViewFlipper>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dip"
        android:text="@string/animation_2_instructions"
    />

    <Spinner android:id="@+id/spinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />

</LinearLayout>


Na pasta. res/values
adicione seguintes códigos no arquivo strings.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, AnimaTextoActivity!</string>
    <string name="app_name">Texto Animado</string>
    <string name="animation_2_text_1">Acesse</string>
    <string name="animation_2_text_2">ja!</string>
    <string name="animation_2_text_3">http://developer-ddss.blogspot.com.br/</string>
    <string name="animation_2_text_4">Programando em Android!</string>
    <string name="animation_2_instructions">Selecione uma animação para o Texto acima:</string>
</resources>

*no arquivo strings.xml:
*São onde fica os texto mostrado na tela do emulador:

Agora vamos criar uma pasta no. res/ :
Chamada: anim
Dentro da pasta anim crie um arquivo XML com o nome: hyperspace_in.xml
Os códigos no XML hyperspace_in.xml são efeito de animação do texto de entrada.
Adicionando seguintes códigos no arquivo hyperspace_in.xml para criar o efeito:
1
2
3
4
5
6
7
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="300"
android:startOffset="1200" />


Criando outro arquivo XML dentro da pasta anim:
com o nome: hyperspace_out.xml efeito de animação do texto de saída.
com códigos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">

       <scale
             android:interpolator="@android:anim/accelerate_decelerate_interpolator"
             android:fromXScale="1.0"
             android:toXScale="1.4"
             android:fromYScale="1.0"
             android:toYScale="0.6"
             android:pivotX="50%"
             android:pivotY="50%"
             android:fillAfter="false"
             android:duration="700" />


       <set
             android:interpolator="@android:anim/accelerate_interpolator"
                android:startOffset="700">
            
             <scale
                    android:fromXScale="1.4"
                    android:toXScale="0.0"
                     android:fromYScale="0.6"
                    android:toYScale="0.0"
                    android:pivotX="50%"
                    android:pivotY="50%"
                    android:duration="400" />
            
             <rotate
                    android:fromDegrees="0"
                    android:toDegrees="-45"
                    android:toYScale="0.0"
                    android:pivotX="50%"
                    android:pivotY="50%"
                    android:duration="400" />
       </set>

</set>

Criando outro arquivo XML dentro da pasta anim:
com o nome: push_left_in.xml
Aqui é outro Efeito de Animação para o texto de entrada.
com códigos:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
       <translate
       android:fromXDelta="100%p"
       android:toXDelta="0"
       android:duration="300"/>
      
       <alpha
       android:fromAlpha="0.0"
       android:toAlpha="1.0"
       android:duration="300" />
</set>


Criando outro arquivo XML dentro da pasta anim:
com o nome: push_left_out.xml
Aqui é o Efeito de Animação para o texto de saída.
com códigos:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
       <translate
       android:fromXDelta="0"
       android:toXDelta="-100%p"
       android:duration="300"/>
       <alpha
       android:fromAlpha="1.0"
       android:toAlpha="0.0"
       android:duration="300" />
</set>


Criando outro arquivo XML dentro da pasta anim:
com o nome: push_up_in.xml
Aqui é outro Efeito de Animação para o texto de entrada.
com códigos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android">

       <translate
       android:fromYDelta="100%p"
       android:toYDelta="0"
       android:duration="300"/>
      
       <alpha
       android:fromAlpha="0.0"
       android:toAlpha="1.0"
       android:duration="300" />
</set>
Criando outro arquivo XML dentro da pasta anim:
com o nome: push_up_out.xml
Aqui é o Efeito de Animação para o texto de saída.
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
       <translate
       android:fromYDelta="0"
       android:toYDelta="-100%p"
       android:duration="300"/>
      
       <alpha
       android:fromAlpha="1.0"
       android:toAlpha="0.0"
       android:duration="300" />
</set>


Pronto!. Já criamos 4 feitos para o texto.
Falta agora colocar alguns código na nossa Activity.
Na pasta src/dentro pacote. Abra o arquivo: AnimaTextoActivity.java
*Aqui estar o nome do meu pacote:
package com.davi;
Em seu projeto pode ser diferente.
Então deixe do jeito do seu. Não mude se for diferente*

*De baixo do pacote.
Você so precisa importar esses seguintes códigos:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.ViewFlipper;

É pra ficar desse jeito no arquivo JAVA: AnimaTextoActivity.java
Códigos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.davi;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.ViewFlipper;

             public class AnimaTextoActivity extends Activity implements
             AdapterView.OnItemSelectedListener {

                    @Override
                    public void onCreate(Bundle savedInstanceState) {
                           super.onCreate(savedInstanceState);
                           setContentView(R.layout.animation_2);

              mFlipper = ((ViewFlipper)this.findViewById(R.id.flipper));
              mFlipper.startFlipping();

              Spinner s = (Spinner) findViewById(R.id.spinner);
              ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this,
        android.R.layout.simple_spinner_itemmStrings);
                          adapter.setDropDownViewResource
(android.R.layout.simple_spinner_dropdown_item);
              s.setAdapter(adapter);
              s.setOnItemSelectedListener(this);
                    }

            public void onItemSelected(AdapterView parent, View v, 
intposition, long id) {
            switch (position) {

                           case 0:
               mFlipper.setInAnimation(AnimationUtils.loadAnimation
(this,R.anim.push_up_in));
                                 mFlipper.setOutAnimation(AnimationUtils.loadAnimation
(this,R.anim.push_up_out));
                                  break;
                           case 1:
               mFlipper.setInAnimation(AnimationUtils.loadAnimation
(this,R.anim.push_left_in));
                                 mFlipper.setOutAnimation(AnimationUtils.loadAnimation
(this,R.anim.push_left_out));
                                  break;
                           case 2:
                                 mFlipper.setInAnimation(AnimationUtils.loadAnimation
(this,android.R.anim.fade_in));
                                 mFlipper.setOutAnimation(AnimationUtils.loadAnimation
(this,android.R.anim.fade_out));
                                  break;
                           default:
                                 mFlipper.setInAnimation(AnimationUtils.loadAnimation
(this,R.anim.hyperspace_in));
                                 mFlipper.setOutAnimation(AnimationUtils.loadAnimation
(this,R.anim.hyperspace_out));
                                  break;
                           }
                    }

                public void onNothingSelected(AdapterView parent) {
                    }

                    private String[] mStrings = {
       "Efeito Empurre para cima. Push up"
"Efeito Empurre para esquerda. Push left"
"Efeito desaparecer. Cross fade""Efeito HiperespaçoHyperspace"};

                    private ViewFlipper mFlipper;
                    }


Se aparecer algum erro(linha vermelha na
Na linha 12: public class AnimaTextoActivity extends Activity implements
.é por que a sua Activity estar diferente.
Para resolver esse erro. Deixe o igual a:

AnimaTextoActivity do seu projeto.

fim

Nenhum comentário:

Postar um comentário