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游戏框架 的相关文章

  • 在我的 Android 应用程序中使用 ServerValue.TIMESTAMP

    我读过很多相关的 stackoverflow 问题 ServerValue TIMESTAMP 但我不知道如何在我的应用程序中使用它 我需要获取帖子创建的时间戳 时间戳应该添加到与帖子的 uid 作者等相同的位置 代码片段其中写这篇文章Fi
  • 如何在 ADB 连接期间禁用电池充电?

    问题描述 每次我在电脑和手机之间连接 USB 线时 电池都会自动充电 我想使用 ADB 协议 但我不想在 ADB 连接期间为电池充电 是否可以关闭此充电功能 当然 我该怎么做呢 环境 Android 操作系统 4 及更高版本的手机 我只需要
  • 从 arraylist 和 hashmap 中删除重复项

    我有一个数组列表 其中包含付款人的姓名 另一个数组列表包含每次付款的费用 例如 nameArray 尼古拉 劳尔 洛伦佐 劳尔 劳尔 洛伦佐 尼古拉 价格数组 24 12 22 18 5 8 1 我需要将每个人的费用相加 所以数组必须变成
  • 如何在android中压缩和解压png图像

    您好 在我的应用程序中 当我单击 zip 按钮时 我需要压缩图像文件 当我单击解压缩按钮时 我需要解压缩文件 我尝试使用下面的代码来压缩图像 但我的问题是当我单击 zip 按钮时 正在创建 zip 文件 但之后在使用 winzip 软件的系
  • 更改卡片高度即更改 Jetpack 中与 Material 3 组合的卡片颜色

    我正在使用 Card 可组合项 我希望它的颜色为白色 但是当我向它添加一些高度时 它的颜色会更改为更像主要容器颜色 我看过文档 其中有一种称为高程覆盖的东西 但找不到说明如何使用它的示例 这是我的代码 Card modifier Modif
  • Android:如何使用后台线程?

    我开发了一个应用程序 它从互联网获取内容并相应地在设备的屏幕上显示它 该程序运行得很好 就是有点慢 加载并显示内容大约需要 3 4 秒 我想将获取内容并将其显示在后台线程中的所有代码放在一起 当程序执行这些功能时 我想显示一个进度对话框 你
  • 使用 Android Firebase 堆栈推送通知

    我开发了使用 Firebase 接收推送通知的 Android 应用程序 我的代码基于 Firebase Google 官方文档 https firebase google com docs cloud messaging android
  • 像 WhatsApp 一样发送图片

    我做了一个聊天应用程序 我想添加照片 文件共享我的应用程序中的概念与 WhatsApp 相同 我已经使用该应用程序制作了Xmpp Openfire目前我正在使用此功能进行照片共享 但它并不完全可靠 public void sendFile
  • TextInputLayout 对于在 EditText 中以编程方式给出提示没有效果

    我有一个 EditText 它的父级是 TextInputLayout 我试图以编程方式为 EditText 提供提示 不在布局中 在这种情况下 文本输入提示动画不起作用 它像简单的 EditText 一样工作 有人可以建议如何处理它吗 下
  • 屏幕开/关检测

    在这里 我试图确定屏幕是否打开 但按下电源锁定 解锁按钮时它似乎不起作用 应用程序运行没有错误 但 if else 中的代码似乎没有效果 Edited现在代码可以工作了 谢谢Olgun 但媒体播放器播放不会停止 并且每次在屏幕上 离屏时都会
  • SDK >=26 仍需要 mipmap/ic_launcher.png?

    在 Android 中 有两种指定启动器图标 可以说是应用程序图标 的方法 老 方式 在 mipmap 文件夹中指定不同的 png 文件 通常命名为 ic launcher png 但可以通过以下方式设置名称android icon mip
  • 如何在 Android 上将动态 alpha 遮罩应用于文本

    I want to make a dynamic alpha mask with drawable shapes as circles or whatever and apply it to a drawed text on Android
  • 剪切评级栏中的图像

    我制作了自己的评级栏 花朵图像有 4 种尺寸 xdpi hdpi 等 从 24px24px 到 64x64px
  • Android 地理围栏无法正常工作(未调用 IntentService)

    这是我的代码 安卓清单
  • 如何关闭 EditText 中的建议?

    如何在 Android 中关闭 EditText 中的建议 android inputType textNoSuggestions 根据this http comments gmane org gmane comp handhelds an
  • 在 Nougat 7.1.1 中点击应用程序快捷方式时出现应用程序未安装错误

    我在向现有应用程序添加静态应用程序快捷方式时遇到一些问题 我按照以下步骤操作https developer android com guide topics ui shortcuts html https developer android
  • 在android中创建SQLite数据库

    我想在我的应用程序中创建一个 SQLite 数据库 其中包含三个表 我将向表中添加数据并稍后使用它们 但我喜欢保留数据库 就好像第一次安装应用程序时它会检查数据库是否存在 如果存在则更新它 否则如果不存在则创建一个新数据库 此外 我正在制作
  • 如何在Android中创建一个简洁的两栏输入表单?

    我想创建一个整洁的两列输入表单 如下所示 到目前为止我的 xml 布局代码
  • 在 Android 手机中通过耳机插孔发送数据

    我目前正在处理一个新项目 我必须通过具有特定电压的耳机插孔发送数据 然后我可以在该电压上工作 所以这里我需要根据我的数据来编程具体电压 我是否可以在android中访问耳机的输出电压 然后创建一个应用程序来控制该电压 这是一篇讨论此问题的
  • 如何在布局编辑器中模拟沉浸式模式

    我想在布局编辑器中全屏查看我的布局 我正在使用 eclipse 插件 我已经通过选择隐藏了 ActionBar NoActionBar组合中的主题 但导航栏是一个不同的故事 AFAIK 它只能使用代码中的标志来隐藏 我需要在活动 xml 文

随机推荐

  • 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