2

我一直在尝试让文本在 Android 小部件中进行动画处理。具体来说,我希望文本淡入淡出。

我知道这是可能的,因为大多数 Android 手机附带的精灵新闻和天气小部件就是这样做的。但是,我看不到这是如何使用动画师或文本切换器(似乎都不支持)来完成的。

我假设这不是使用警报完成的,因为这对于动画来说似乎完全是矫枉过正。

有谁知道这是怎么做到的?

4

2 回答 2

2

您可以为此使用 ViewSwitcher 或 TextSwitcher

    <TextSwitcher
     android:id="@+id/switcher"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:inAnimation="@android:anim/fade_in"
     android:outAnimation="@android:anim/fade_out" >

     <TextView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:text="Hello" />

     <TextView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:text="World" /> 
  </TextSwitcher>

如果您在 textSwitcher 上调用 setText ,它将淡出当前文本并淡入新文本。


您还可以通过编程方式为任何 View 对象启动动画。

Animation fadeIn = AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_in);
textView.startAnimation(fadeIn);
于 2012-05-09T13:55:45.437 回答
1

您可以使用在 xml 文件中定义或以编程方式定义的 Alpha 动画...这是有关动画的文档:http: //developer.android.com/guide/topics/resources/animation-resource.html#alpha-element

您希望动画何时开始?

于 2012-05-09T12:29:34.760 回答