安卓界面——最开始界面的加载
发布日期:2021-06-29 11:11:58 浏览次数:4 分类:技术文章

本文共 4763 字,大约阅读时间需要 15 分钟。

这里写图片描述

点开软件进入该界面自动加载……..

public class PanlewarActivity extends ActionBarActivity {
int screenwidth; int screenheight; ProcessView processview; Handler myhander = new Handler() { public void handleMessage(Message msg) { } }; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏 DisplayMetrics dm = new DisplayMetrics();//获取屏幕大小 getWindowManager().getDefaultDisplay().getMetrics(dm); screenwidth = dm.widthPixels; screenheight = dm.heightPixels; processview = new ProcessView(this, 1, screenwidth, screenheight); this.setContentView(processview); }}
public class ProcessView extends SurfaceView implements SurfaceHolder.Callback{
Bitmap processbackground; private TutorialThread thread;//刷帧的线程 Bitmap process; int proces=0; int startx,starty; private Paint paint; private boolean flag=true; private PanlewarActivity activity; int scren_width=400; int scren_heigt=800; private int type;public ProcessView(PanlewarActivity activity, int type,int screenwidth,int screenheight) { super(activity); this.activity = activity;//得到activity的引用 getHolder().addCallback(this); this.thread = new TutorialThread(getHolder(), this);//初始化重绘线程 this.type = type; paint = new Paint();//创建画笔 /* */ this.scren_width=screenwidth; this.scren_heigt=screenheight; paint.setTextSize(12);//设置字体大小 process = BitmapFactory.decodeResource(getResources(), R.drawable.process); processbackground = BitmapFactory.decodeResource(getResources(), R.drawable.background_prg); this.startx=scren_width/2-process.getWidth()/2; this.starty=scren_heigt/2-process.getHeight()/2-process.getHeight()/4; }public void onDraw(Canvas canvas){ Rect rect1 = new Rect(0,0,processbackground.getWidth(),processbackground.getHeight()); Rect rect2 = new Rect(0,0,scren_width,scren_heigt); canvas.drawBitmap(processbackground,rect1,rect2, null); canvas.drawBitmap(process,startx,starty, paint); canvas.drawRect(startx+proces*(process.getWidth()/100),starty,startx+process.getWidth(), starty+process.getHeight(),paint); canvas.drawText("加载中……"+ proces + "%" ,startx+(process.getWidth()/2)-20, starty+(process.getHeight()+20),paint);}private WindowManager getWindowManager() { // TODO Auto-generated method stub return null;}@Overridepublic void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub}@Overridepublic void surfaceCreated(SurfaceHolder arg0) { // TODO Auto-generated method stub this.thread.setFlag(true);//设置线程标志位 this.thread.start();//启动线程}@Overridepublic void surfaceDestroyed(SurfaceHolder arg0) { // TODO Auto-generated method stub boolean retry = true;//循环标志位 thread.setFlag(false);//设置循环标志位 while (retry) { try { thread.join();//等待线程结束 retry = false; } catch (InterruptedException e) {}//不断地循环,直到刷帧线程结束 }}class TutorialThread extends Thread{
//刷帧线程 private int span = 600;//睡眠的毫秒数 private SurfaceHolder surfaceHolder; private ProcessView processView;//processView引用 private boolean flag = false;//循环标志位 public TutorialThread(SurfaceHolder surfaceHolder, ProcessView processView) {
//构造器 this.surfaceHolder = surfaceHolder; this.processView = processView;//得到加载界面 } public void setFlag(boolean flag){
//设置标志位 this.flag = flag; } public void run(){
//重写的run方法 Canvas c;//画布 while (this.flag){
//循环 c = null; try { // 锁定整个画布,在内存要求比较高的情况下,建议参数不要为null c = this.surfaceHolder.lockCanvas(null); synchronized (this.surfaceHolder) { processView.onDraw(c);//调用绘制方法 } } finally { if(c!= null) { //更新屏幕显示内容 this.surfaceHolder.unlockCanvasAndPost(c); } } try{ Thread.sleep(span);//睡眠指定毫秒数 } catch(Exception e){
//捕获异常信息 e.printStackTrace();//打印异常信息 } proces+=20; if(proces==100){ if(processView.type == 1){
//切到WelcomeView //processView.activity.myhander.sendEmptyMessage(4);//向主activity发送Handler消息 } } } }}}

转载地址:https://blog.csdn.net/zw1996/article/details/78056679 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:安卓——屏蔽陌生来电
下一篇:安卓——窗体小知识

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月30日 11时27分33秒