java钟表动画_钟表动画的实现

本文介绍了如何在Android中实现钟表动画,包括使用线程和休眠来控制动画节奏,通过二维数组存储不同时间色块的图片资源,以及使用Handler更新UI并添加位移动画。主要步骤包括设置背景图片、启动线程、在线程中逐个添加色块图片并应用动画。
摘要由CSDN通过智能技术生成

1,android中凡是牵涉到动画一般需要线程,及在线程中进行一定时间的休眠来实现。(除了系统自带的几种animation)

2,在项目中需要每个钟表的色块需要实现从0点至当前时间的顺序添加代表不同时钟的色块,并且需要根据等级选择不同颜色的色块。

实现的步骤如下:

(1)将不同颜色,代表不同时刻的图片资源id利用二维数组来表示:

private int[] levels={1,3,2,1,2,2,3,2,1,3,1};

public static int[][] imgs ={

{ R.drawable.brown1, R.drawable.brown2, R.drawable.brown3,

R.drawable.brown4, R.drawable.brown5, R.drawable.brown6,

R.drawable.brown7, R.drawable.brown8, R.drawable.brown9,

R.drawable.brown10,R.drawable.brown11 },

{ R.drawable.red1, R.drawable.red2, R.drawable.red3,

R.drawable.red4, R.drawable.red5, R.drawable.red6,

R.drawable.red7, R.drawable.red8, R.drawable.red9,

R.drawable.red10,R.drawable.red11 },

{ R.drawable.green1, R.drawable.green2, R.drawable.green3,

R.drawable.green4, R.drawable.green5, R.drawable.green6,

R.drawable.green7, R.drawable.green8, R.drawable.green9,

R.drawable.green10 ,R.drawable.green11} };

(2)接下来主线程的代码如下:

private voidgenerateClock() {//首先添加钟表的背景图片

ImageView clock=new ImageView(ShouyeActivity.this);

clock.setImageResource(com.bobo.mylvluo.R.drawable.clock_bg);

frame_clock.addView(clock);//开启线程

newAddImgThread().start();

}

(3)而实现动画的线程如下:(记得,主线程中的UI未必只有while)

class AddImgThread extendsThread{public voidrun(){for(int i=0;i

Message msg=newMessage();

msg.arg1=i;

handler.sendMessage(msg);try{

Thread.sleep(200);

}catch(InterruptedException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

(4)在主界面更新UI的handler为

private Handler handler=newHandler(){

@Overridepublic voidhandleMessage(Message msg) {super.handleMessage(msg);int i=msg.arg1;

ImageView img=new ImageView(ShouyeActivity.this);//其中i+1代表的是时间;level【i】代表i+1时间的空气质量等级,img【levels【i】-1】【i】代表的是对应的图片

img.setImageResource(Constant.imgs[levels[i]-1][i]);//为其添加一个位移的动画效果

TranslateAnimation ani=newTranslateAnimation(5f,0f,5f,0f);

ani.setDuration(200);

frame_clock.addView(img);

img.setAnimation(ani);

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值