目前我正在处理我的应用程序的一部分,该应用程序具有作为建筑物的ImageView。根据用户的级别,选择一个随机数作为总点数,这取决于建筑物的健康状况。
例如,如果用户的级别为1,则生成0到10之间的随机数,称为“生命点”。我的问题是在ImageView上显示这个随机数的动画的最佳方法是什么?
我之前想过,我可以创建多个建筑物的图像,所有这些图像都显示在它们顶部,但这需要我制作大约50份图像,这将占用太多空间。 / p>
那么,有没有办法在我的ImageView上显示一个小动画,我可以将这个随机值插入?
感谢您的帮助。
答案 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());