我正在尝试使用Property Animation演示流星动画,但失败了。我的演示很简单: 1.创建一个具有开始按钮的MainActivity。 2.单击开始按钮以启动MeteorActivity 3. MeteorActivity有一个相对布局内容视图,其中包含一个位于布局中间/中心的简单星形ImageView。 4.在MeteorActivity的onResume方法中,我启动属性动画以将ImageView的“top”属性从0更改为1000。 问题是星形从顶部边缘落下,直到它到达其原始位置(布局的中间)。它消失了!!!!有人可以帮忙吗?
MeteorActivity:
public class MeteorActivity extends Activity implements ValueAnimator.AnimatorUpdateListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meteor);
}
@Override
protected void onResume() {
super.onResume();
startMeteor();
}
private void startMeteor() {
ImageView imageView = (ImageView) findViewById(R.id.starImageView);
ObjectAnimator anim = ObjectAnimator.ofInt(imageView, "top", 0, 1000);
anim.setDuration(10000);
anim.addUpdateListener(this);
anim.start();
}
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator){
ImageView imageView = (ImageView) findViewById(R.id.starImageView);
Log.d("ImageView:Height:", Integer.valueOf(imageView.getTop()).toString());
}
}
Layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/starImageView"
android:src="@drawable/meteor"
android:layout_centerHorizontal="true"/>
答案 0 :(得分:1)
嗨请更新您的布局,我发布了以下内容,让我们试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/starImageView"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
当你需要停止动画时,还有一点让我知道。
谢谢。