仿乐透购彩app(1)
2016-07-23 22:20
399 查看
仿乐透购彩app
通过代码设置无标题,全屏//设置无标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //设置全屏 getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:contentDescription="@null" android:id="@+id/welcome_img" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/loading" > </ImageView> </LinearLayout>
WelcomActivity.java启动界面:是一个图片渐变的过程, 让后跳到主界面:
package com.chb.letou; import com.chb.letou.util.BitmapUtil; import com.chb.letou.view.MainView; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.DisplayMetrics; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; /** * 启动界面 */ public class WelcomeActivity extends Activity { /* * 屏幕高度 */ private int screenHeight; /** * 屏幕宽度 */ private int screenWidth; private boolean flag = true; private int alpanum=0; private int count; Handler hannext = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==0) { welcome_imageview.setAlpha(alpanum+=1); } if (msg.what==-1) { welcome_imageview.setAlpha(alpanum-=1); } if (msg.what==1) { nextpage(); } } }; private ImageView welcome_imageview; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //无标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //设置全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.welcome); //获取屏幕的尺寸 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); screenHeight= dm.heightPixels; screenWidth =dm.widthPixels; init(); } private void init() { // TODO Auto-generated method stub welcome_imageview = (ImageView)findViewById(R.id.welcome_img); Bitmap srcpic = BitmapFactory.decodeResource(getResources(),R.drawable.loading); Bitmap newpic = BitmapUtil.GetNewBitmap(srcpic, screenWidth, screenHeight,screenWidth, screenHeight); welcome_imageview.setImageBitmap(newpic); new Thread(new Runnable() { public void run() { while (flag) { try { Thread.sleep(10); count++; hannext.sendEmptyMessage(0); if (count>255) { hannext.sendEmptyMessage(-1); } if (count>500) { hannext.sendEmptyMessage(1); } } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } private void nextpage(){ flag=false; finish(); Intent intent = new Intent(WelcomeActivity.this,MainView.class); startActivity(intent); } @Override protected void onDestroy() { super.onDestroy(); } }
改进:使用补间动画(Tween Animation)
第一步: 在res/anim文件夹下创建一个动画的设置文件<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:shareInterpolator="true" > <!-- fromAlpha和toAlpha是起始透明度和结束时透明度 --> <alpha android:duration="2000" android:fromAlpha="0.0" android:startOffset="500" android:toAlpha="1.0" /> <!-- 起始x轴坐标 止x轴坐标 始y轴坐标 止y轴坐标 轴的坐标 轴的坐标 --> <scale android:duration="2000" android:fromXScale="0.0" android:fromYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.0" android:toYScale="1.0" /> </set>
第二步:
设置动画, 启动动画
//使用AnimationUtils加载动画配置文件 Animation animation = AnimationUtils.loadAnimation(WelcomeActivity.this, R.anim.loading); //启动动画 welcome_imageview.setAnimation(animation);
package com.chb.letou;
import com.chb.letou.view.MainView;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
/**
* 启动界面
*/
public class WelcomeActivity extends Activity {
private ImageView welcome_imageview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.welcome);
init();
}
private void init() {
welcome_imageview = (ImageView)findViewById(R.id.welcome_img);
//使用AnimationUtils加载动画配置文件 Animation animation = AnimationUtils.loadAnimation(WelcomeActivity.this, R.anim.loading); //启动动画 welcome_imageview.setAnimation(animation);
//跳到主界面
nextpage();
}
private void nextpage(){
Intent intent = new Intent(WelcomeActivity.this,MainView.class);
startActivity(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
发现问题: 启动界面的动画还没有结束,就跳到了新的界面, 并不是在动画执行完成,而进行finish() ,跳到新的界面。
进一步的改进: 设置动画执行的监听,setAnimationListener()
welcome_imageview = (ImageView)findViewById(R.id.welcome_img); //使用AnimationUtils加载动画配置文件 Animation animation = AnimationUtils.loadAnimation(WelcomeActivity.this, R.anim.loading); //启动动画 welcome_imageview.startAnimation(animation); animation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { //动画执行结束 //跳到主界面 nextpage(); } });
相关文章推荐
- 仿乐透购彩app(7)
- 仿乐透购彩app(6)
- 仿乐透购彩app(5)
- 仿乐透购彩app(4)
- 仿乐透购彩app(3)
- Android Q&A
- Android 自定义View实现照片裁剪框与照片裁剪
- js的call和apply函数的使用
- Android执行定时循环任务
- Android设置透明、半透明等效果
- Dialog源码分析
- swift 学习笔记五
- zabbix wechat 报警
- iOS开发拓展篇—音频处理(音乐播放器2)
- iOS开发拓展篇—音频处理(音乐播放器1)
- GCD使用经验与技巧浅谈
- Android 计算器解析(四): 完善计算功能
- Android-下拉刷新(一)自定义刷新视图
- Android Activity与Service的AIDL接口通讯
- Android渐变标题栏的实现