android开发(三):android界面与游戏开发

原创 2012年03月29日 11:24:54

android界面结构如下图所示:

常用界面组件:

textview,listview,toast(简短提示)等。

界面布局:

LinearLayout:线性布局

RelativeLayout:相对布局

TableLayout:表单布局

TabWideget:切换选项卡

 AbsoluteLayout:自定义x,y位置布局

游戏开发

游戏开发不使用上述布局方式,游戏是通过状态机让Canvas不断在view上面画所需要的东西。

view类开发框架通知界面刷新可以使用Handler或者postInvalidate两种方法:

Handler实例:

Handler myHandler = new Handler()
 {
  //接收到消息后处理
  public void handleMessage(Message msg)
  {
   switch (msg.what)
   {
   case Activity01.REFRESH:
    mGameView.invalidate();
    break;
   }
   super.handleMessage(msg);
  }   
 };

使用postInvalidate

class GameThread implements Runnable
 {
  public void run()
  {
   while (!Thread.currentThread().isInterrupted())
   {
    try
    {
     Thread.sleep(100);
    }
    catch (InterruptedException e)
    {
     Thread.currentThread().interrupt();
    }
    //使用postInvalidate可以直接在线程中更新界面
    mGameView.postInvalidate();
   }
  }
 }

SurfaceView类开发框架

SurfaceView类和view类开发框架明显的不同在于,SurfaceView不需要通过线程来更新视图,但在绘制之前必须使用lockCanvas方法锁定画布,并得到画布,绘制完成后,使用unlockCanvasAndPost方法来解锁画布,于是才能显示在屏幕上。

Graphics类:paint,canvas等。

全屏显示:requestWindowFeature(Window.FEATURE_NO_TITLE);

屏幕自适应:sensor

Tween动画:通过对场景里的对象不断进行图像变化(平移、缩放等)产生动画效果。

Frame动画:即顺序播发实现做好的图像。

Gif动画:Gif解码-》顺序播放

 

 

 

安卓直播详细教程(三)-----ijkplayer打造个性化控制界面

前言为什么要写这篇文章呢? Firsr:直接集成ijkplayer的控制界面太丑了 Second:无法满足我们的需求 我们来看下直接集成的ijkplayer控制界面:是不是没法用,那么我们现在来自定义...
  • github_33304260
  • github_33304260
  • 2017年10月20日 17:42
  • 908

android mtk6592 添加led三色灯,红色蓝色绿色

本文的led是三色的分别是红色,蓝色,绿色
  • Jack_ma1
  • Jack_ma1
  • 2014年11月21日 16:31
  • 2459

Android视图状态及重绘流程分析,带你一步步深入了解View(三)

在前面一篇文章中,我和大家一起从源码的层面上分析了视图的绘制流程,了解了视图绘制流程中onMeasure、onLayout、onDraw这三个最重要步骤的工作原理,那么今天我们将继续对View进行深入...
  • sinyu890807
  • sinyu890807
  • 2014年01月09日 08:33
  • 91819

Android应用程序用户界面(三)

每个视图和视图组对象都具有属于它们的多种XML属性。某些属性只属于特定的视图对象(例如TextView的textSize属性),但是继承自该视图类的任何视图对象也都拥有这些属性。一些属性所有视图对象都...
  • lemonrabbit1987
  • lemonrabbit1987
  • 2015年08月28日 19:07
  • 253

Android 入门三 UI界面

1. 话说 不是前端或者学设计的程序员大都美感较差,因为大都关注的是功能的实现,我觉得学点UI对于程序员以后找女朋友是一件很重要也很紧急的事儿。 2.那android里有哪些脸谱呢,因为有很多,我就...
  • a839579332
  • a839579332
  • 2016年04月03日 21:25
  • 255

Android应用界面开发(三)

Inflater、Fragment与handler
  • qq_34939549
  • qq_34939549
  • 2016年05月24日 15:47
  • 2032

android 蓝牙锁应用开发实例(二)客户端基本页面

概述       从本文开始起就正式进入到代码部分的编写,这篇文章主要介绍的是android客户端基本页面的编写,将包含如下几个内容 开机时的图形锁界面 Fragment的使用 “我的蓝牙锁”界面的编...
  • w8897282
  • w8897282
  • 2016年03月31日 10:59
  • 1886

Android 三个按钮对话框

1、activity_main.xml
  • wljun739
  • wljun739
  • 2014年07月09日 17:07
  • 8204

Android进阶——双击,三击和多击的实现

双击: 先来看简单的实现方式 private void initView() { // 找到按钮控件 btn = (Button) findViewById(R....
  • haovip123
  • haovip123
  • 2016年01月14日 17:25
  • 1026

Android应用界面开发(一)

一、Android studio的下载与配置Android Studio是Google发布的用于Android的开发平台。系统基于 IntelliJ IDEA。类似 EclipseADT,Androi...
  • qq_34939549
  • qq_34939549
  • 2016年05月10日 16:12
  • 1491
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android开发(三):android界面与游戏开发
举报原因:
原因补充:

(最多只允许输入30个字)