在 ImageView 之上显示动画
Displaying an Animation on top of an ImageView
目前我正在开发我的应用程序的一部分,它有一个 ImageView,它是一个建筑物。根据用户的级别,选择一个随机数作为总生命值,这是从建筑物的健康状况中获取的。
例如,如果用户的级别为 1,则会生成一个介于 0 和 10 之间的随机数,称为 "hitpoints"。我的问题是在 ImageView 上显示这个随机数的动画的最佳方式是什么?
我之前在想,我可以创建多张建筑物图像,所有图像上都显示不同的数字,但这需要我制作大约 50 张图像的副本,这会占用太多空间 space.
那么,有没有办法在我的 ImageView 顶部显示一个小动画,我可以将这个随机值插入其中?
感谢您的帮助。
你可以将 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>
至于动画,你还没有指定你想要什么样的动画(淡入、滑动 up/down/left/right 等),但你需要做的就是像下面这样的东西您想要为包含数字的 TextView 设置动画:
在您的 Activity 中为动画创建一个方法(示例是淡入动画):
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());
目前我正在开发我的应用程序的一部分,它有一个 ImageView,它是一个建筑物。根据用户的级别,选择一个随机数作为总生命值,这是从建筑物的健康状况中获取的。
例如,如果用户的级别为 1,则会生成一个介于 0 和 10 之间的随机数,称为 "hitpoints"。我的问题是在 ImageView 上显示这个随机数的动画的最佳方式是什么?
我之前在想,我可以创建多张建筑物图像,所有图像上都显示不同的数字,但这需要我制作大约 50 张图像的副本,这会占用太多空间 space.
那么,有没有办法在我的 ImageView 顶部显示一个小动画,我可以将这个随机值插入其中?
感谢您的帮助。
你可以将 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>
至于动画,你还没有指定你想要什么样的动画(淡入、滑动 up/down/left/right 等),但你需要做的就是像下面这样的东西您想要为包含数字的 TextView 设置动画:
在您的 Activity 中为动画创建一个方法(示例是淡入动画):
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());