0
点赞
收藏
分享

微信扫一扫

项目之新闻客户端 之开机动画


Android开机动画的实现方式有很多种,这里我介绍下我自己使用的2种方法第一种就是使用定时器: 

new Handler().postDelayed(new Runnable() {

@Override
public void run() {
Intent intent = new Intent();
}
}, 20000); //定时器 2s后跳转到主页面


但是实际我使用的过程中使用的多线程,使用图片的透明度来实现的: 关键代码如下

public class Splash extends Activity {

private ImageView imageview; //图片
private TextView textview; //文字
private int alpha = 255; //透明度
private int b = 0;
private Handler mHandler = new Handler(){

@Override
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
imageview.setAlpha(msg.arg1);
imageview.invalidate();
break;
case 2:
Intent in = new Intent(Splash.this, MainActivity.class);
startActivity(in);
new Splash().finish();
break;
default:
break;
}

};
};

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
imageview = (ImageView) this.findViewById(R.id.ImageView01);
textview = (TextView) this.findViewById(R.id.TextView01);
imageview.setAlpha(alpha);
new Thread(new Runnable() {
@Override
public void run() {
while (alpha>0) {
try {
Thread.sleep(100);
alpha -= 5;
Message msg = mHandler.obtainMessage();
msg.arg1=alpha;
msg.what=1;
mHandler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Message msg = mHandler.obtainMessage();
msg.arg1=0;
msg.what=2;
mHandler.sendMessage(msg);
}
}).start();


/*new Handler().postDelayed(new Runnable() {

@Override
public void run() {
Intent intent = new Intent();
}
}, 20000); //定时器 2s后跳转到主页面
*/ }



}

页面就一个图片和一行文字没有什么实质性的东西所以不再添加,

另外一种方式还可以使用Android的动画效果来实现动画的效果,可以参考我的​​Android之动画实现技术​​​



举报

相关推荐

0 条评论