在ImageView上显示动画

时间:2015-01-16 21:09:09

标签: java android animation random imageview

目前我正在处理我的应用程序的一部分,该应用程序具有作为建筑物的ImageView。根据用户的级别,选择一个随机数作为总点数,这取决于建筑物的健康状况。

例如,如果用户的级别为1,则生成0到10之间的随机数,称为“生命点”。我的问题是在ImageView上显示这个随机数的动画的最佳方法是什么?

我之前想过,我可以创建多个建筑物的图像,所有这些图像都显示在它们顶部,但这需要我制作大约50份图像,这将占用太多空间。 / p>

那么,有没有办法在我的ImageView上显示一个小动画,我可以将这个随机值插入?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以将ImageView和TextView放在FrameLayout中:

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/building"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/your_building_image" />

    <TextView
        android:id="@+id/number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

</FrameLayout>

至于动画,你没有指定你想要的动画类型(淡入,上/下/左/右等),但是你需要做的就是下面的事情。您想要为包含数字的TextView设置动画:

在动画的活动中为动画创建一个方法(示例是淡入淡出的动画):

private Animation fadeInAnimation() {
    Animation animation = new AlphaAnimation(0f, 1.0f);
    animation.setDuration(1000); // in milliseconds
    animation.setFillEnabled(true);
    animation.setFillAfter(true);
    return animation;
}

...

TextView number = (TextView) findViewById(R.id.number);

通过调用上述方法为TextView设置动画:

number.setText(yourRandomNumber.toString());
number.startAnimation(fadeInAnimation());