Android的帧动画补间动画,新手复习
来源:互联网 发布:iphone6手机壳淘宝 编辑:程序博客网 时间:2024/06/06 14:20
前几天使用到了,顺便自己也复习下。
MainActivity.java的代码
public class MainActivity extends Activity implements OnClickListener{
private Button btnZhen;
private Button btnBuJian;
private Button btnGif;
private ImageView iv = null;
private ImageView ivBuJian = null;
private AnimationDrawable ad = null;//动画绘制对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnZhen=(Button) findViewById(R.id.btnZhen);
btnZhen.setOnClickListener(this);
btnBuJian=(Button) findViewById(R.id.btnBuJian);
btnBuJian.setOnClickListener(this);
btnGif=(Button) findViewById(R.id.btnGif);
btnGif.setOnClickListener(this);
//帧动画
iv=(ImageView) findViewById(R.id.ivZhen);//绑定
iv.setBackgroundResource(R.drawable.myzhendonghua);//设置背景资源
ad = (AnimationDrawable) iv.getBackground();//动画读取到背景
//补间动画
ivBuJian=(ImageView) findViewById(R.id.ivBuJian);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btnZhen:
ad.start();
break;
case R.id.btnGif:
Intent i = new Intent();
i.setClassName(MainActivity.this, "com.example.y2_android_ch8_kehou.GifViewActivity");
startActivity(i);
break;
case R.id.btnBuJian:
AnimationSet set = new AnimationSet(true);
//平移
/*TranslateAnimation ani = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, 0.0f);
ani.setDuration(1000);*/
//透明度
AlphaAnimation ani1 = new AlphaAnimation(1.0f, 0.2f);
ani1.setDuration(1200);
ani1.setRepeatCount(5);
ani1.setRepeatMode(Animation.RESTART);
//缩放
/* ScaleAnimation ani2 = new ScaleAnimation(0.5f, 2.0f, 0.5f, 2.0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.0f);
ani2.setDuration(200);
ani2.setRepeatCount(3);
ani2.setRepeatMode(Animation.RESTART);*/
//旋转
RotateAnimation ani3 = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF,0.5f,
Animation.RELATIVE_TO_SELF,0.5f);
ani3.setDuration(800);
ani3.setRepeatCount(5);
ani3.setRepeatMode(Animation.RESTART);
/*set.addAnimation(ani);*/
set.addAnimation(ani1);
/*set.addAnimation(ani2);*/
set.addAnimation(ani3);
ivBuJian.startAnimation(set);
break;
default:
break;
}
}
}
另外的再放上GifViewActivity.java的代码
public class GifViewActivity extends Activity {
// 借助Movie实现 播放gif格式图
private Movie mMovie;
private long mMovieStart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_gif_view);
setContentView(new CustomGifView(this));
}
class CustomGifView extends View {
public CustomGifView(Context context) {
super(context);
mMovie = Movie.decodeStream(getResources().openRawResource(
R.drawable.gundong));
}
public void onDraw(Canvas canvas) {
long now = android.os.SystemClock.uptimeMillis();
if (mMovieStart == 0) { // first time
mMovieStart = now;
}
if (mMovie != null) {
int dur = mMovie.duration();
if (dur == 0) {
dur = 1000;
}
int relTime = (int) ((now - mMovieStart) % dur);
mMovie.setTime(relTime);
mMovie.draw(canvas, 0, 0);
invalidate();
}
};
}
}
网盘地址:
http://pan.baidu.com/s/17A98E
- Android的帧动画补间动画,新手复习
- android动画 -- 帧动画 补间动画
- Android动画-帧动画&补间动画
- Android的帧动画、补间动画、属性动画
- android中的动画:帧动画、补间动画、属性动画
- Android动画:帧动画、补间动画、属性动画
- Android动画 帧动画、补间动画、属性动画 (一)
- Android动画 帧动画、补间动画、属性动画 (二)
- Android帧动画与补间动画
- Android 逐帧动画&补间动画
- android 补间动画帧动画
- Android中的帧动画与补间动画的使用
- android的帧动画和补间动画总结
- Android动画学习--帧动画,补间动画,属性动画的基本用法
- Android 动画-----补间动画
- Android动画--补间动画
- Android -- Animation 动画效果, 帧动画 和 补间动画
- Android中的动画,逐帧动画,补间动画
- 判定一个点是否在三角形内
- hdu 5276 YJCtricks time
- ecshop 调试分类页面技巧 debug_print_backtrace
- java 反射详解
- A. Case of the Zeros and Ones
- Android的帧动画补间动画,新手复习
- 回头一望,继续向前
- request exceeds 8192 bytes
- 2015年7月4日解决问题:eclipse连接access数据库问题//java五中布局及其应用方法//equals()与==的区别等
- 破解VI密码
- QT 利用slite3和mediainfodll类获取多媒体标签
- iOS动力学UIDynamic讲解(一)
- Android 内存管理 &Memory Leak & OOM 分析
- 《斯坦福:编程范式》