【发布时间】:2013-05-15 07:31:20
【问题描述】:
我正在开发一个 Android 2.2 应用程序。
我想将图像从屏幕左侧移动到屏幕右侧。
我该怎么做?我读到我必须将此图像添加到 ListView 或 GridView 才能设置此动画。
更新
我创建了以下文件:
anim/translate_right
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:fromXDelta="-100%p"
android:toXDelta="0"
android:duration="5000" />
</set>
anim/ship_layout_controller
<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="10%"
android:animationOrder="reverse"
android:animation="@anim/translate_right" />
布局/起始页
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:id="@+id/appNameTextView"
android:text="@string/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="40px"/>
<Button
android:id="@+id/PlayButton"
android:text="@string/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="40px"/>
<AbsoluteLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/greekShip"
android:persistentDrawingCache="animation|scrolling"
android:layoutAnimation="@anim/ship_layout_controller"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/greekship"
android:maxWidth="176px"
android:maxHeight="87px"
android:layout_x="-300px"/>
</AbsoluteLayout>
</LinearLayout>
StartActivity.java
public class StartActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startpage);
}
@Override
protected void onResume() {
super.onResume();
ImageView ship = (ImageView)findViewById(R.id.greekShip);
ship.startAnimation(AnimationUtils.loadAnimation(this, R.anim.translate_right));
}
}
但它不起作用。
【问题讨论】:
-
我听说我必须将此图像添加到 ListView 或 GridView 才能设置此动画。您误读了。嗯……你看过 SDK 中的动画示例了吗?
-
移动意味着动画?如果是这样,您可以查看 Animation 类(一个简单的 Translate 动画应该可以做到)。如果您只想让它向右对齐,请将 Layout Gravity 设置为右侧。
-
@Cristian:我正在阅读 Apress 图书 Pro Android 2,它是这么说的。
-
@Zarah:是的,我想为从左到右的帆设置动画。
-
@VansFannel:好的,让我按顺序解释一下:你不需要 ListView 和 GridView 来做这个动画。所以,你看错了,或者这本书是错的(我认为这是不可行的)。
标签: android animation imageview android-2.2-froyo