androidのview游戏框架

2023-11-18

androidのview游戏框架
1. view游戏框架介绍,首先需要建立一个Activity。
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐去标题栏(应用程序的名字)  
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        //隐去状态栏部分(电池等图标和一切修饰部分)
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //设置显示View实例
        setContentView(new MyView(this));
    }
}
然后自定义一个视图类Myview继承View类。
public class MyView extends View {
	private int textX = 20, textY = 20;
	//重写父类构造函数
	public MyView(Context context) {
		super(context);
		setFocusable(true);
	}

	//重写父类绘图函数
	@Override
	protected void onDraw(Canvas canvas) {
		//创建一个画笔的实例
		Paint paint = new Paint();
		//设置画笔的颜色
		paint.setColor(Color.WHITE);
		//绘制文本
		canvas.drawText("Game", textX, textY, paint);
		super.onDraw(canvas);
	}

        //重写按键抬起事件函数
	@Override
	public boolean onKeyUp(int keyCode, KeyEvent event) {
		return super.onKeyUp(keyCode, event);
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		//获取用户手指触屏的X坐标赋值与文本的X坐标
		textX = (int)event.getX();
		//获取用户手指触屏的Y坐标赋值与文本的Y坐标
		textY = (int)event.getY();
		//重绘画布
		invalidate();
		//postInvalidate();
		return true;
	}
}
加入log后,分析程序启动时候,view 中方法所走的流程。

先走构造方法,然后启动onDraw(). 一般会执行两次onDraw(),跟 onMeature(), onLayout()方法有关。
invalidate() 跟 postInvalidate() 区别:
invilidate() 方法不能在当前线程中循环调用执行,这里所说的线程不是系统的主UI线程,而是子线程,
postInvalidate() 可以子线程中循环调用执行,如果不在当前view创建线程循环重绘画布就没有区别了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

androidのview游戏框架 的相关文章

随机推荐

  • Mybatis left join 一对多及多对多查询配置

    一对一查询配置
  • 90-50-010-源码-hbase的rowkey设计

    1 视界 1 rowKey编码概述 注 Kylin源码分析系列基于Kylin的2 6 0版本的源码 其他版本可以类比 2 相关概念 前面介绍了Kylin中Cube构建的流程 但Cube数据具体是以什么样的形式存在 可能还不是特别清晰明了 这
  • 拷贝构造函数调用总结

    拷贝构造函数主要在以下三种情况下起初始化作用 1 在声明语句中用一个对象初始化另一个对象 2 将一个对象作为参数按值调用方式传递给另一个对象时生成对象副本 3 生成一个临时对象作为函数的返回结果 那么接着就看一下在这三种情况下拷贝构造函数分
  • python自动化课程笔记(六)函数

    函数 类 模块 包 项目 包与文件夹的区别在于 包中有很多模块 和init文件 函数 提高编码的效率及代码的重用 把独立功能的代码块组成一个小模块 def printInfo 定义一个函数 print 10 print 人生苦短 我用pyt
  • Microsoft Office 2021安装

    哈喽 大家好 今天一起学习的是office2021的安装 有兴趣的小伙伴也可以来一起试试手 一 测试演示参数 演示操作系统 Windows 11 支持Win10安装 不支持Win7 XP系统 系统类型 64位 演示版本 cn office
  • PMP估算方法对比:参数估算、类比估算、自下而上估算、三点估算和粗略量级估算

    目录 1 类比估算 2 参数估算 3 自下而上估算 4 三点估算 5 粗略量级估算 1 类比估算 英文全称 Analogous Estimating Technique 定义 与过去类似活动的参数值 如范围 成本 预算和持续时间等 或规模指
  • 快乐E栈项目实战第四阶段

    快乐E栈项目实战第四阶段 文章目录 快乐E栈项目实战第四阶段 1 思路 2 代码 3 结果 学完Java的IO操作 我们使用文件将快递信息存储起来 这样程序重新启动起来存储的快递信息也不会丢失 暂时不使用序列化进行存储 使用Properti
  • MySQL C/C++ API libmysqlclient-dev

    完整的API内容地址 https www mysqlzh com doc 196 html 接口 接口 解释 mysql library init 初始化MySQL C API库 mysql library end 最终确定MySQL C
  • Calendar的使用

    Calendar Calendar是一个抽象类 构造器被protected修饰 需要通过getInstance 获取实例 public static void main String args Calendar instance Calen
  • IDEA2021中VUE代码爆红解决方案

    1 在IDEA中安装vue js插件 找到vue js安装即可 之后点击apply gt OK 2 安装完成后打开cmd 输入npm v npm命令集成在node js里面 如果这条命令失败则前往node js进行相关的安装 3 爆红的主要
  • 解决Ubuntu 20.04网络无法连接,没有网络图标

    现象 网络适配器处于NAT 并且电脑主机有网络 但是Ubuntu20 04中没有网络 或者初次启动Ubuntu20 04时是由网络的 但后来不知是何原因导致网络不通 无法用浏览器访问百度 如下图右上角有线网络图标消失了 解决方法 删除Net
  • 【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

    1 拉取镜像 指定版本 在git查看相应版本 参考 https github com openzipkin zipkin 如2 21 7 docker pull openzipkin zipkin 2 21 7 2 启动 Zipkin默认端
  • Mybatis源码阅读(四)-Spring集成Mybatis-Mapper接口的注入:MapperScannerConfigurer

    一 Spring包扫描注解注入会过滤掉接口类 在Spring IOC容器启动的过程中 Spring会在扫描 CompopnentScan指定的路径时 会将被 Component Service等注解的类自动注册BeanDefinition到
  • 微信小程序NPM使用及第三方依赖安装详解

    一 NPM 1 1NPM介绍 首先我们介绍NPM的使用 NPM是随同NodeJS一起安装的包管理工具 能解决NodeJS代码部署上的很多问题 常见的使用场景有以下几种 允许用户从NPM服务器下载别人编写的第三方包到本地使用 安装第三方依赖过
  • top命令浅析

    top 使用top命令会实时的刷新系统的负载信息 top命令的选项很多 此处只列举我个人觉得比较实用的几个选项 具体选项可以参考man top 进行查看 u user 只显示指定用户启动的进程 p pid 只显示指定pid的进程 d sec
  • 【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(单向LSTM,附完整代码和数据集)

    写在前面 首先感谢兄弟们的关注和订阅 让我有创作的动力 在创作过程我会尽最大能力 保证作品的质量 如果有问题 可以私信我 让我们携手共进 共创辉煌 提起LSTM大家第一反应是在NLP的数据集上比较常见 不过在图片分类中 它同样也可以使用 我
  • 字节跳动自研万亿级图数据库 & 图计算实践

    本文选自 字节跳动基础架构实践 系列文章 字节跳动基础架构实践 系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容 和大家分享团队在基础架构发展和演进过程中的实践经验与教训 与各位技术同学一起交流成长 2019 年 Ga
  • 视频接口(2)—— MIPI Solution

    目录 1 MIPI概述 2 MIPI优点 3 CSI 2 3 1 多个物理通道字节数据格式 3 2 低电压等级协议特性 3 3 短包结构 3 4 长包结构 3 5 Data Identifier DI 3 6 数据类型类 3 7 帧同步包结
  • 关于type_C接口

    文章目录 概要 一 引脚定义 二 六脚Type c 三 12脚Type c 四 16脚Type c 五 usb3 0 概要 type C接口外观好看 双面插等众多优点 已经成为了现在主流的接口 一 引脚定义 VBus 总线电源 USB PD
  • androidのview游戏框架

    android view游戏框架 1 view游戏框架介绍 首先需要建立一个Activity public class MainActivity extends Activity Override public void onCreate