TestHandlerActivity.java

package src.com;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;

public class TestHandlerActivity extends Activity implements Runnable {

private static final int my_key = 0x123;
private int a = 0;
private int[] myImage = {R.drawable.aa, R.drawable.bb,
R.drawable.cc, R.drawable.dd};
private Handler myHandler;
private Thread myThread;
private ImageView myImageView;
private Animation myAnimationAlpha;
private Animation myAnimationScale;
private Animation myAnimationTranslate;
private Animation myAnimationRotate;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

myImageView = (ImageView) findViewById(R.id.ImageView01);

myAnimationAlpha = new AlphaAnimation(0.1f, 0.1f);
myAnimationAlpha.setDuration(3000);

myAnimationScale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
myAnimationScale.setDuration(3000);

myAnimationTranslate = new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
myAnimationTranslate.setDuration(3000);

myAnimationRotate = new RotateAnimation(0.0f, +350.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
myAnimationRotate.setDuration(3000);

// myLinearLayout.setBackgroundColor(Color.WHITE);
myHandler = new Handler(){

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);

switch(msg.what){
case TestHandlerActivity.my_key:
switch(a){
case 0:
myImageView.startAnimation(myAnimationAlpha);
break;
case 1:
myImageView.startAnimation(myAnimationScale);
break;
case 2:
myImageView.startAnimation(myAnimationTranslate);
break;
case 3:
myImageView.startAnimation(myAnimationRotate);
break;
default:
break;
}
myImageView.setImageResource(myImage[a-1]);
myImageView.setScaleType(ImageView.ScaleType.FIT_XY);
//myImageView.setLayoutParams(new LayoutParams(300, 200));

if( a == myImage.length ){
a = 0;
}

break;
default:
break;
}

//super.handleMessage(msg);
}

};

myThread = new Thread(this);
myThread.start();
}

@Override
public void run() {
// TODO Auto-generated method stub
try {
do{
a++;
Thread.sleep(4000);
Message msg = new Message();
msg.what = TestHandlerActivity.my_key;
myHandler.sendMessage(msg);

}while(Thread.interrupted() == false);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ImageView
android:id="@+id/ImageView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ImageView>

</LinearLayout>

更多相关文章

  1. Android(安卓)DEX方法超过64K和gradle编译OOM解决方案
  2. android 记得用mkdirs不要用mkdir
  3. android 获取图片绝对地址
  4. Android运行虚拟机报错Execution failed for task ':app:transfo
  5. Android操作SD卡文件
  6. Android(安卓)之 将RAW资源文件写入SD卡工具类
  7. Android(安卓)上传文件[转]
  8. Android中对话框的使用
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android 修改程序字体
  2. Android布局管理器总结
  3. 项目中那些事|控件之TextView
  4. EditText光标居上
  5. 《第一行代码 Android(安卓)》学习记录(一
  6. Android Wear 进阶 综述 Developing for
  7. [置顶] android简单命令
  8. 只发起单独activity
  9. 2.GridView
  10. 【Android】利用Android的网格布局写一个