安卓UI面试题 6-10

6. SurfaceView & View 的区别?
SurfaceView是在一个新启的单独线程中可以重新绘制画面,而View必须在UI的主线程中更新画面。在UI的主线程中更新画面,可能会引发一些问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。如果你使用SurfaceView,便不会阻塞你的UI主线程,因为它是在新的线程中更新画面。但是这也带来了另外一个问题,就是事件同步。比如你触摸了一下屏幕,你需要在SurfaceView中的thread处理,一般就需要一个event queue的设计来保存touch event,这会稍微复杂一点,因为又涉及到了线程同步。

所以基于以上所说,根据游戏特点,一般分成两类:

1、被动更新画面的。比如棋类,这种用View就好了。因为画面的更新是依赖于onTouch来更新,可以直接使用invalidate。因为这种情况下,这一次Touch和下一次Touch需要的时间比较长些,不会产生影响。

2、主动更新。比如一个人在一直跑动。这就需要一个单独的thread不停的重绘人的状态,避免阻塞main UI 的 thread。所以显然View不合适,需要SurfaceView来绘制。
🚀🚀🚀🚀🚀🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/748167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB中visdiff函数用法

目录 语法 说明 示例 比较两个文件 比较两个文件并指定类型 发布比较报告 visdiff函数的功能是比较两个文件或文件夹。 语法 visdiff(filename1,filename2) visdiff(filename1,filename2,type) comparison visdiff(___) 说明 visdiff(filename1,filename2) 打开比较工…

海格里斯HEGERLS托盘搬运机器人四向车引领三维空间集群设备柔性运维

随着市场的不断迅猛发展变化,在物流仓储中,无论是国内还是海外,都对托盘式解决方案需求量很大。顾名思义,托盘式解决方案简单理解就是将产品放置在托盘上进行存储、搬运和拣选。 面对托盘式方案需求,行业中常见的方案是…

面试常问,ADC,PWM

一 PWM介绍 pwm全名(Pulse Width Modulation):脉冲宽度调制 在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域。PWM一定程度上是数字到模拟…

Java使用Selenium实现自动化测试以及全功能爬虫

前言 工作中需要抓取一下某音频网站的音频,我就用了两个小时学习弄了一下,竟然弄出来,这里分享记录一下。 springboot项目 Selenium Java使用Selenium实现自动化测试以及全功能爬虫 前言1 自动化测试2 java中集成Selenium3 添加浏览器驱动4…

【linux】进程(一)

先看预备知识,对本篇文章更有帮助。 目录 进程概念:了解动态运行的概念:进程的本身内部属性:启动进程:关闭进程: 如何创建进程:进程状态:直接看进程状态:僵尸进程与孤儿…

llamma笔记:部署Llama2

1 申请Llama2 许可 Download Llama (meta.com) 地址似乎不能填中国 1.1 获取url 提交申请后,填的那个邮箱会受到一封meta发来的邮件,打码部分的url,之后会用得上 2 ubuntu/linux 端部署Llama2 2.1 git clone Llama2的github 仓库 bash g…

每日一题 第五期 洛谷 图的遍历

图的遍历 题目描述 给出 N N N 个点, M M M 条边的有向图,对于每个点 v v v,求 A ( v ) A(v) A(v) 表示从点 v v v 出发,能到达的编号最大的点。 输入格式 第 1 1 1 行 2 2 2 个整数 N , M N,M N,M,表示点数…

Vue3 使用vite进行调试

通过此篇可以学到: 如何在vue3vite中代理到服务端地址如何修改项目本地启动的端口如何可以使用本机ip进行访问本地地址 修改vite.config.ts文件 import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from vitejs/…

git基础命令(四)之分支命令

目录 基础概念git branch-r-a-v-vv-avv重命名分支删除分支git branch -h git checkout创建新的分支追踪远程分支同时切换到该分支创建新的分支并切换到该分支撤销对文件的修改,恢复到最近的提交状态:丢弃本地所有修改git checkout -h git merge合并指定分…

log4rs测试

引入crate: log4rs {version "1.3.0"} log {version "0.4.20"} 配置文件 和Cargo.toml同级创建log4rs.yml,内容如下: refresh_rate: 30 seconds appenders:stdout:kind: consolerollingfile:kind: rolling_filep…

【yolo检测模型出现大量误报】

文章目录 1.可能需要针对以下几个方面进行优化和调整:2.出现大量误报会直接导致精确率和准确率明显下降。3.解决办法,采用最简单的样本均衡3.1.样本均衡3.2.添加负样本 1.可能需要针对以下几个方面进行优化和调整: 数据集质量: 确…

ASP.NET Mvc+FFmpeg+Video实现视频转码

目录 首先,做了视频上传的页面: FFmpeg:视频转码 FFmpegHelper工作类: 后台控制器代码: 前端视图代码: 参考文章: 首先,做了视频上传的页面: 借鉴了这篇文章 ASP.…

D. Tandem Repeats?

思路&#xff1a;首先我们要枚举长度&#xff0c;然后从前往后遍历&#xff0c;判断是否存在改长度的重复串。 代码&#xff1a; void solve(){string s;cin >> s;int n s.size();int ans 0;for(int len n / 2;len > 1;len --){int t 0;for(int i 0;i len <…

【Qt问题】解决UI设计显示和运行显示界面大小不一致问题

问题描述&#xff1a; 在我自己第一次用Qt Creator的时候&#xff0c;发现老师的每次ui界面是多大&#xff0c;运行出来的窗口就是多大&#xff0c;而我自己的每次大小都对不上&#xff0c;所以我每次都要去手动调整窗口大小&#xff0c;非常痛苦。 经过多方查找发现这是由于…

TSINGSEE青犀AI智能分析网关V4酿酒厂安全挂网AI检测算法

在酿酒行业中&#xff0c;安全生产一直是企业经营中至关重要的一环。为了确保酒厂生产过程中的安全&#xff0c;TSINGSEE青犀AI智能分析网关V4的安全挂网AI检测算法发挥了重要作用。 TSINGSEE青犀AI智能分析网关V4的安全挂网检测算法是针对酒厂里酒窖挂网行为进行智能检测与识…

Qt按回车键实现确定/发送按钮功能

构造函数中&#xff0c;添加如下代码 connect(ui->lineEdit,SIGNAL(returnPressed()),ui->pushButton_send, SIGNAL(clicked()),Qt::UniqueConnection) 当光标在lineEdit上时&#xff0c;输入完毕直接按回车键&#xff08;大/小都可以&#xff09;&#xff0c; //就会…

个人简历主页搭建系列-03:Hexo+Github Pages 介绍,框架配置

今天的更新内容主要是了解为什么选择这个网站搭建方案&#xff0c;以及一些前置软件的安装。 Why Hexo? 首先我们了解一下几种简单的网站框架搭建方案&#xff0c;看看对于搭建简历网站的需求哪个更合适。 在 BuiltWith&#xff08;网站技术分析工具&#xff09;上我们可以…

【矩阵】73. 矩阵置零【中等】

矩阵置零 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 解题思路 1、…

SpringCloud Bus 消息总线

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第八篇&#xff0c;即介绍 Bus 消息总线。 二、概述 2.1 遗留的问题 在上一篇文章的最后&#xff0c;我…

汇编语言(Assemble Language)学习笔记(更新中)

零.学习介绍和使用工具 【1】我们使用的教材是机械工业出版社的《32位汇编语言程序设计第二版》。 指导老师是福州大学的倪一涛老师。 这门课程教授的是Intel 80*86系列处理器的32位汇编。我们现在的处理器都兼容这个处理器。 这篇博客只是大二下汇编语言学习的总结&#xff…