“我正在Android Studio中为Uni做一个项目,我想让一个行星旋转。行星在手机的左右两侧超出了边界,它位于中心。当我开始动画时,有行星的图像错过了手机边界之外的部分,我想我需要调整图像的大小,使其比手机本身更大,但我做不到。”我不明白怎么做,所以请帮助我。到目前为止,我只上了3节关于Android编程的课,但我想自己学习更多。
在mainactivity.xml中我有这个
<ImageView
android:id="@+id/background_image"
android:layout_width="match_parent"
android:layout_height="732dp"
android:animation="@anim/rotate"
android:scaleType="matrix"
android:src="@drawable/earth"
android:visibility="visible" />
1条答案
按热度按时间jhiyze9q1#
我很困惑这个问题是什么(请保持简短并删除不必要的细节)。根据我对这个问题的理解,这是我的答案:
要使行星图像在动画过程中显示完整,您可以尝试使用更大的图像大小,以适应行星的完整旋转,然后将其缩小以适应屏幕大小。
您可以修改ImageView的layout_width和layout_height属性以匹配较大图像的大小,然后使用android:scaleType=“fitCenter”属性缩小图像以适应屏幕大小。
例如,如果较大的图像大小为1200 x1200像素,则可以将layout_width和layout_height属性设置为1200 dp,并使用fitCenter作为缩放类型:
这将允许行星完全旋转而不会消失在屏幕边缘之外。您可能需要调整较大图像的大小以满足您的特定需要。
此外,您可以考虑在旋转动画中使用android:valueType=“matrix”,以确保行星在旋转过程中保持居中。
PS:如果你想以编程方式创建RotateAnimation,请使用以下代码:
如果希望动画保持在结尾的方向,请添加:return(true);
如果你想让动画永久地停留,没有结束,添加:setRepeatCount(Animation.Infinite);