【发布时间】:2015-05-25 19:14:45
【问题描述】:
我想围绕屏幕中心旋转以下圆圈,我正在这样做。但我也想让它在旋转时越来越靠近中心。有人对我如何实现这一目标有任何建议和代码示例吗?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlayout"
android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<LinearLayout
android:id="@+id/ring1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
android:background="@drawable/ring">
</LinearLayout>
<Button
android:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@color/main_blue"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:textColor="@color/white"
android:text="Start"
android:onClick="startAnimation" />
戒指代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size android:width="25dp" android:height="25dp"/>
<solid android:color="@color/main_red" />
</shape>
动画代码:
public void startAnimation(View view) {
LinearLayout ring1 = (LinearLayout)findViewById(R.id.ring1);
AnimationSet animationSet = new AnimationSet(false);
RotateAnimation rAnimation = new RotateAnimation(0f, 360f, 328f, 100f);
rAnimation.setInterpolator(new LinearInterpolator());
rAnimation.setRepeatCount(Animation.INFINITE);
rAnimation.setDuration(5000);
animationSet.addAnimation(rAnimation);
ring1.startAnimation(animationSet);
}
【问题讨论】: