安卓自定义动画,如同机场航班时刻牌。

7
我希望能够创建一个类似机场航班时间表的文本动画,从顶部滑落并更改其上的文本。这是图片。因此,当我点击按钮时,图像上的文本应该以所述动画更改。在Android中是否可能实现?
请指导我如何在Android中实现这种类型的动画? 编辑:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/clockbg1" android:duration="150" />
    <item android:drawable="@drawable/clockbg2" android:duration="150" />
    <item android:drawable="@drawable/clockbg3" android:duration="150" />
    <item android:drawable="@drawable/clockbg4" android:duration="150" />
    <item android:drawable="@drawable/clockbg5" android:duration="150" />
    <item android:drawable="@drawable/clockbg6" android:duration="150" />
</animation-list>

我的Activity类:

public class XMLAnimation extends Activity {
private static AnimationDrawable animation;
private ImageView refresh;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    refresh = (ImageView) findViewById(R.id.simple_anim);
    refresh.setBackgroundResource(R.drawable.loader_animation);
    animation = (AnimationDrawable) refresh.getBackground();
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    animation.start();
}

如何在这些图片上放置垂直动画文本,使其看起来像我想要创建的动画?谢谢,AndroidVogue。

你给了我一个不错的工作要做 :) - ingsaurabh
@ingsaurabh,是的。我想在我的小项目中实现它。 - user744881
@AndroidVogue 你的意思是像HTC手机一样有数字时钟吗? - Herry
2个回答

1

这不完全是你想要的东西,但是Kevin Dion有一个很好的三部分教程,从这里开始创建一个自定义里程表小部件,看起来像你想要的东西。它应该能帮助你入门。

如果你想要字母的上半部分掉下来的效果,你可以通过将字母绘制到缓冲图像中,然后缩放字母的垂直范围来获得透视效果。


能否告诉我如何在垂直方向上缩放文本?我已经使用动画翻页,页面垂直翻转,但对于文本动画一直没有头绪。我已经更新了我的代码,请看一下。谢谢。 - user744881
让我们称每个显示器的一半为“叶子”。要绘制一个字母,我会这样做:创建两个大小为叶子的位图。在两个位图中绘制字母,缩放并定位文本,使其一半覆盖一个位图,另一半覆盖另一个位图。然后使用每个半部分所需的缩放计算,将每个位图绘制到其相应的叶子中,使用[Graphics.drawBitmap](http://developer.android.com/reference/android/graphics/Canvas.html#drawBitmap(android.graphics.Bitmap, android.graphics.Rect, android.graphics.Rect, android.graphics.Paint))的缩放/平移版本进行绘制。 - Ted Hopp
这里是这种方法的改进:为字母制作一个单独的位图,然后使用drawBitmap将字母的上半部分绘制到上叶(在您的动画中高度不同),然后将字母的下半部分绘制到下叶(高度不变)。一个复杂之处在于,在最后三帧中,这将把较低的字母绘制到上叶中。为了解决这个问题,源矩形应选择字母底部不到一半的部分。 - Ted Hopp

0

我有一个可用的库。原本是由别人开发的,但我提供了支持,使其可以向下兼容到Froyo版本。希望这能对你有所帮助。

AbhanFlipView

参考:

库开发者:Emil Sjölander 动画创建者:Jake Wharton

更新

它有一个名为HowTo.txt的文档,展示了如何集成。

谢谢。


太棒了。感谢@Abhan、@JakeWharton、@EmilSjolander。终于我可以在项目中集成动画来替换使用图片的旧想法,就像HTC一样。非常感谢你们。 - user744881
@AmolGupta 是的,不幸的是整个代码库都被删除了。对此给您带来的不便深感抱歉。我相信您一定会找到类似的开源项目。 - user456118
看起来在 https://github.com/vincentChao/AbhanFlipView 上有一个仓库的副本。 - Intrications

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接