如何使用Android SDK进行文本动画?

时间:2010-11-15 05:16:37

标签: android

所以我开发了一个代码,当按下应用程序中的某个按钮时,它应该会在Textview中显示一些动画(添加一些乐趣)。是否可以在Textview中使用文本动画,还是应该使用Canvas或SurfaceView来绘制动画的aplhabets?

对于这方面的一些代码示例的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

执行以下操作 “animation.xml”

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:padding="10dip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

<ViewFlipper android:id="@+id/flipper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:flipInterval="2000"
            android:layout_marginBottom="20dip" >
            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:textSize="26sp"
                    android:text="@string/animation_2_text_1"/>
            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:textSize="26sp"
                    android:text="@string/animation_2_text_2"/>
            <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:textSize="26sp"
                    android:text="@string/animation_2_text_3"/>
            <TextView
                    android:layout_width="match_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="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="5dip"
    android:text="@string/animation_2_instructions"
/>

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

“主要活动”

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

    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_item, mStrings);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    s.setAdapter(adapter);
    s.setOnItemSelectedListener(this);
}

public void onItemSelected(AdapterView parent, View v, int position, 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 = {
        "Push up", "Push left", "Cross fade", "Hyperspace"};

private ViewFlipper mFlipper;

}

“的strings.xml”

<string name="animation_2_text_1">Freedom</string>
<string name="animation_2_text_2">is nothing else but</string>
<string name="animation_2_text_3">a chance to be better.</string>
<string name="animation_2_text_4">— Albert Camus</string>
<string name="animation_2_instructions">Select an animation:</string>