关于TranslateAnimation动画的一个小问题package com.example.testpicimport android.app.Activityimpor
关于TranslateAnimation动画的一个小问题
package com.example.testpic;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView image;
Button start;
Button cancel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.main_img);
start = (Button) findViewById(R.id.main_start);
cancel = (Button) findViewById(R.id.main_cancel);
/** 设置位移动画 向右位移150 */
final TranslateAnimation animation = new TranslateAnimation(0, 150, 0,
0);
animation.setDuration(2000);// 设置动画持续时间
animation.setRepeatCount(2);// 设置重复次数
animation.setRepeatMode(Animation.REVERSE);// 设置反方向执行
start.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
/** 开始动画 */
image.setAnimation(animation);
animation.startNow();
}
});
cancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/** 结束动画 */
animation.cancel();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
布局文件:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/main_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/center_qq"
android:layout_gravity="center"
/>
<Button
android:id="@+id/main_start"
android:layout_width="60dp"
android:layout_height="40dp"
android:layout_below="@id/main_img"
android:text="开始"
/>
<Button
android:id="@+id/main_cancel"
android:layout_width="60dp"
android:layout_height="40dp"
android:layout_below="@id/main_start"
android:text="停止"
/>
</RelativeLayout>
我想点击按钮的时候放一个简单的动画,但是点击没反应,如果我把动画移动出来,不放在按钮的onclick事件里面,就是正常的,不知为什么
[解决办法]
把setAnimation换成startAnimation
[解决办法]
Start是启用线程,每个activty都是异步加载,用Strat就是和activity的一起加载,而你要的点击后才启动,那就是set了,,,
[解决办法]
activity 是主线程自动开启,在子线程中需要start
