C语言,C语言源代码到底是什么意思?Android TV 焦点原理源码解析

2024-07-23 11:56:35 15

C语言,C语言源代码到底是什么意思?Android TV 焦点原理源码解析

本文目录

C语言,C语言源代码到底是什么意思

现在的教学流程有问题

要是我肯定先拿一个可以正常运行的hello world来一边改

一边讲解

然后写个猜数字  控制台程序

接下来用MFC给他写个界面

让大家知道学习这些算法到底有什么用

再往后,我可能会一直教界面编程

直到你们感觉到自己的算法需要深入学习

然后再回过头去学算法

别用什么垃圾TC了,这都什么年代了

新手建议VC6即可,又可以学算法

也能开发MFC界面程序 对电脑配置要求也不搞

甚至绿色精简版就能用

然后写一些游戏相关的工具 或者网络相关的工具

不怕不懂,这样至少知道缺什么知识,然后去学

我最讨厌学一大堆,也不知道有什么用的

提不起兴趣,也没有积极主动性

我写的网游服务器在线人数实时显示。。。。

还有游戏辅助没写完 这里不能上图了,要是上那个估计会被删除回答

Android TV 焦点原理源码解析

相信很多刚接触AndroidTV开发的开发者,都会被各种焦点问题给折磨的不行。不管是学技术还是学习其他知识,都要学习和理解其中原理,碰到问题我们才能得心应手。下面就来探一探Android的焦点分发的过程。

Android焦点事件的分发是从ViewRootImpl的processKeyEvent开始的,源码如下:

源码比较长,下面我就慢慢来讲解一下具体的每一个细节。

dispatchKeyEvent方法返回true代表焦点事件被消费了。

ViewGroup的dispatchKeyEvent()方法的源码如下:

(2)ViewGroup的dispatchKeyEvent执行流程

(3)下面再来瞧瞧view的dispatchKeyEvent方法的具体的执行过程

惊奇的发现执行了onKeyListener中的onKey方法,如果onKey方法返回true,那么dispatchKeyEvent方法也会返回true

可以得出结论:如果想要修改ViewGroup焦点事件的分发,可以这么干:

注意:实际开发中,理论上所有焦点问题都可以通过给dispatchKeyEvent方法增加监听来来拦截来控制。

(1)dispatchKeyEvent方法返回false后,先得到按键的方向direction值,这个值是一个int类型参数。这个direction值是后面来进行焦点查找的。

(2)接着会调用DecorView的findFocus()方法一层一层往下查找已经获取焦点的子View。 ViewGroup的findFocus方法如下:

View的findFocus方法

说明:判断view是否获取焦点的isFocused()方法, (mPrivateFlags & PFLAG_FOCUSED) != 0 和view 的isFocused()方法是一致的。

其中isFocused()方法的作用是判断view是否已经获取焦点,如果viewGroup已经获取到了焦点,那么返回本身即可,否则通过mFocused的findFocus()方法来找焦点。mFocused其实就是ViewGroup中获取焦点的子view,如果mView不是ViewGourp的话,findFocus其实就是判断本身是否已经获取焦点,如果已经获取焦点了,返回本身。

(3)回到processKeyEvent方法中,如果findFocus方法返回的mFocused不为空,说明找到了当前获取焦点的view(mFocused),接着focusSearch会把direction(遥控器按键按下的方向)作为参数,找到特定方向下一个将要获取焦点的view,最后如果该view不为空,那么就让该view获取焦点。

(4)focusSearch方法的具体实现。

focusSearch方法的源码如下:

可以看出focusSearch其实是一层一层地网上调用父View的focusSearch方法,直到当前view是根布局(isRootNamespace()方法),通过注释可以知道focusSearch最终会调用DecorView的focusSearch方法。而DecorView的focusSearch方法找到的焦点view是通过FocusFinder来找到的。

(5)FocusFinder是什么?

它其实是一个实现 根据给定的按键方向,通过当前的获取焦点的View,查找下一个获取焦点的view这样算法的类。焦点没有被拦截的情况下,Android框架焦点的查找最终都是通过FocusFinder类来实现的。

(6)FocusFinder是如何通过findNextFocus方法寻找焦点的。

下面就来看看FocusFinder类是如何通过findNextFocus来找焦点的。一层一层往下看,后面会执行findNextUserSpecifiedFocus()方法,这个方法会执行focused(即当前获取焦点的View)的findUserSetNextFocus方法,如果该方法返回的View不为空,且isFocusable = true && isInTouchMode() = true的话,FocusFinder找到的焦点就是findNextUserSpecifiedFocus()返回的View。

(7)findNextFocus会优先根据XML里设置的下一个将获取焦点的View ID值来寻找将要获取焦点的View。

看看View的findUserSetNextFocus方法内部都干了些什么,OMG不就是通过我们xml布局里设置的nextFocusLeft,nextFocusRight的viewId来找焦点吗,如果按下Left键,那么便会通过nextFocusLeft值里的View Id值去找下一个获取焦点的View。

可以得出以下结论:

1. 如果一个View在XML布局中设置了focusable = true && isInTouchMode = true,那么这个View会优先获取焦点。

2. 通过设置nextFocusLeft,nextFocusRight,nextFocusUp,nextFocusDown值可以控制View的下一个焦点。

Android焦点的原理实现就这些。总结一下:

为了方便同志们学习,我这做了张导图,方便大家理解~

HRNet 源代码结构详解

HRNet 主要的模型结构,具体实现部分在 HighResolutionNet 类中有详细定义。 总体结构 按照顺序 可分为三部分: 具备 pretrain 模型的,可用模型结构: yaml 文件中,关于模型结构的关键部分,以 hrnet_w48 为例 HRNet 类定义,通过 config 指定的模型结构,实例化特定结构的模型,构建过程如下 transition layer 完成 stage 之间连接需要的 两种转换 以下为 hrnet_w48 的 transition 具体结构 stage1 产生 1/4 feature map,没有 branch 分支结构,采用与 resnet 完成一样的 _make_layer() 函数构建层 stage 2/3/4 为 HRNet 核心结构,用到了 HighResolutionModule ,内含 branch 构建和 特征 fuse 模块 实现下图红框中的,branch 并行 多 scale 特征提取 和 末端将 多 scale 特征通过 upsample/downsample 方式融合 上图红框中,每个横向的串行结构,如第1个红框 stage2 内,有2个横向的串行结构;由 num_blocks 决定串行 block 使用个数 根据 stage cfg 中指定的 branch 数量,构建多个并行的 branch,调用之前的 _make_one_branch() ,如 stage 2/3/4 各有 2/3/4 个 branches HighResolutionModule 末尾的特征融合层 以下图红框即 stage3 中 蓝色 branch 输出结果为例,其输出结果要转换成 4 种尺度的特征,用于每个 branch 末尾的特征融合

iOS源码解析—YYModel(NSObject+YYModel)

​ iOS源码解析—YYModel(YYClassInfo) 分析了如何根据OC的Class对象构建YYClassInfo对象,为接下来的JSON数据和Model转换作准备,这篇文章开始讲解NSObject+YYModel。 ​ 分析NSObject+YYModel.h文件,包括3个Category和一个protocol,分别是: 字典studentDic中的key对应原字典playerDic中的key,studentDic中的Model由playerDic中的value转化得到。 首先定义了两个类,_YYModelMeta和_YYModelPropertyMeta,分别封装了Model的信息和Model中各属性的信息。 _YYModelMeta维护了Class的相关信息,下面是注释: _YYModelMeta是通过YYClassInfo对象的信息构建得到的。首先调用metaWithClass:cls方法,该方法如下: 维护了一个键值对cache作为缓存,用cls作为key,调用CFDictionaryGetValue方法去缓存中查找,如果有,直接返回构建好的_____YYModelMeta对象,如果没有找到或者needUpdate属性标记为true,则根据cls创建一个新的_YYModelMeta对象,并且存入缓存。这样不需要每次都创建,提高了性能。 接下来看一下initWithClass:方法, 下面分析几个重要的方法: YYModel的总体思想是以Model属性的类型为准,如果JSON中对应名称的value的类型和Model属性类型不一致,会对value的类型进行转化,保证和Model属性的类型一致。如果兼容不了,不进行属性赋值。下面分析一下ModelSetValueForProperty方法: 该方法上文中提到该方法是用来JSON转成Model的过程中对Model中的属性进行赋值的方法,该方法做了部分基本类型的兼容: YYModel还提供了一些工具方法,下面简单分析一下: YYModel作为一个负责JSON数据和Model转化的库,十分易用和高效,特别是做了一些类型的兼容和转化,避免了服务端接口数据类型和客户端Model对象类型不兼容导致的问题,例如执行了不存在的方法而导致崩溃。另一方面,对YYModel的学习在一定程度也促进了对runtime机制的学习和了解。 关于YYModel的分析到这儿先告一段落,由于本人的iOS基础有待提升,再加上表达能力有限,文中许多地方的分析和思路,表达的不是很准确和清楚,希望通过今后的学习和练习,提升自己的水平。

C语言,C语言源代码到底是什么意思?Android TV 焦点原理源码解析

本文编辑:admin

更多文章:


nba2k14霍华德面补(nba2k14mc模式怎么打面补)

nba2k14霍华德面补(nba2k14mc模式怎么打面补)

本文目录nba2k14mc模式怎么打面补nba2k14 MC模式面补NBA2K14的MC怎么套用面补NBA2K14的MC怎么套用面补已经下好的面补请问NBA2K14面补怎么用啊怎么我放进去没用怎么给nba2k13里的霍华德打上2014-20

2024年6月28日 10:51

应用软件下载中心(应用中心怎么下载)

应用软件下载中心(应用中心怎么下载)

大家好,应用软件下载中心相信很多的网友都不是很明白,包括应用中心怎么下载也是一样,不过没有关系,接下来就来为大家分享关于应用软件下载中心和应用中心怎么下载的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录应用中心怎

2024年6月30日 06:28

房源系统软件哪个好(中介系统房产软件哪个好)

房源系统软件哪个好(中介系统房产软件哪个好)

“房源系统软件哪个好”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看房源系统软件哪个好(中介系统房产软件哪个好)!本文目录中介系统房产软件哪个好哪种租房软件比较靠谱房源系统软件哪个好租房app哪个比较好买房app十大排行榜出

2024年7月15日 16:31

德国乙级联赛比分排名?德国足球队世界杯战绩

德国乙级联赛比分排名?德国足球队世界杯战绩

大家好,德国大比分相信很多的网友都不是很明白,包括德国乙级联赛比分排名也是一样,不过没有关系,接下来就来为大家分享关于德国大比分和德国乙级联赛比分排名的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录德国乙级联赛比

2024年7月23日 23:40

下载一个手机导航软件(有什么全球性导航的手机软件吗)

下载一个手机导航软件(有什么全球性导航的手机软件吗)

各位老铁们好,相信很多人对下载一个手机导航软件都不是特别的了解,因此呢,今天就来为大家分享下关于下载一个手机导航软件以及有什么全球性导航的手机软件吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录有什么全球性导航

2024年7月17日 12:14

最近发现越来越多的人在学原画梦的课程,为什么会这么火,他们的课程好在哪?原画梦和涂鸦王国有什么区别

最近发现越来越多的人在学原画梦的课程,为什么会这么火,他们的课程好在哪?原画梦和涂鸦王国有什么区别

本文目录最近发现越来越多的人在学原画梦的课程,为什么会这么火,他们的课程好在哪原画梦和涂鸦王国有什么区别cg王和原画梦有什么区别原画梦和原画人什么关系最近发现越来越多的人在学原画梦的课程,为什么会这么火,他们的课程好在哪你可以先去【绘学霸】

2024年7月22日 22:33

17货源网一件代发(一手货源在哪里找)

17货源网一件代发(一手货源在哪里找)

本篇文章给大家谈谈17货源网一件代发,以及一手货源在哪里找对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一手货源在哪里找17zwdcom一件代发怎么样怎么做电商,还不用囤货一件代发货源有哪些一件代发货源网有哪一些个人可以在1

2024年4月21日 16:26

交管12123手机app下载(交管12123下载二维码在哪,12123交管官网下载app123在哪)

交管12123手机app下载(交管12123下载二维码在哪,12123交管官网下载app123在哪)

本文目录交管12123下载二维码在哪,12123交管官网下载app123在哪威海交管12123官网是什么,威海交管12123 app下载在哪怎样下载交管12|23安装交管12123下载二维码在哪,12123交管官网下载app123在哪   

2024年5月19日 11:04

php用什么软件来编程(PHP需要用到什么软件)

php用什么软件来编程(PHP需要用到什么软件)

本篇文章给大家谈谈php用什么软件来编程,以及PHP需要用到什么软件对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录PHP需要用到什么软件p

2024年7月3日 18:00

极品飞车14怎么安装(极品飞车14怎么装)

极品飞车14怎么安装(极品飞车14怎么装)

本文目录极品飞车14怎么装极品飞车14中文版下载后怎么安装求详细解答!极品飞车14怎么安装 我已经下载好了刚下完极品飞车14,有谁能告诉我怎么安装吗极品飞车14怎么装,怎么就5.52G了?你下的文件坏了吧?去游讯上下载的。早在上个月,极品飞

2023年11月29日 19:00

卧龙传说下载(有没有类似于炉石传说的手机游戏另外画质最好好点)

卧龙传说下载(有没有类似于炉石传说的手机游戏另外画质最好好点)

本文目录有没有类似于炉石传说的手机游戏另外画质最好好点有没有什么手机游戏和炉石传说一样的啊有没有类似于炉石传说的手机游戏另外画质最好好点《全民英雄》、《魔幻卡牌》、《刀塔传奇》、《我叫MT》、还有《dota英雄》都是和炉石传说类似的。此类游

2024年3月12日 01:45

电脑免费下载歌曲的软件(还有什么软件可以免费下载音乐)

电脑免费下载歌曲的软件(还有什么软件可以免费下载音乐)

大家好,关于电脑免费下载歌曲的软件很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于还有什么软件可以免费下载音乐的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本

2024年7月6日 14:15

日语语音翻译器在线翻译软件(有什么翻译日语的软件)

日语语音翻译器在线翻译软件(有什么翻译日语的软件)

大家好,如果您还对日语语音翻译器在线翻译软件不太了解,没有关系,今天就由本站为大家分享日语语音翻译器在线翻译软件的知识,包括有什么翻译日语的软件的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录有什么翻译日语的软件日

2024年5月26日 00:41

nba2k19手机中文版下载(NBA2K19手游在哪里可以下到啊)

nba2k19手机中文版下载(NBA2K19手游在哪里可以下到啊)

大家好,关于nba2k19手机中文版下载很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于NBA2K19手游在哪里可以下到啊的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位

2024年7月17日 11:57

option(option是什么意思)

option(option是什么意思)

这篇文章给大家聊聊关于option,以及option是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录option是什么意思option是什么意思啊 option的含义option是什么意思option和choice的

2024年7月6日 23:58

bootxp(XP系统boot文件夹)

bootxp(XP系统boot文件夹)

本文目录XP系统boot文件夹如何设置Boot光启安装XP的xp电脑boot设置图解XP系统boot文件夹  winxp中boot不是文件夹,而是一个文件,其全名为boot.ini,默认具有系统及隐藏属性,查看方法如下:  1、打开“我的电

2023年6月21日 07:40

单机游戏《文明》的百科?求文明帝国2攻略和秘籍

单机游戏《文明》的百科?求文明帝国2攻略和秘籍

本文目录单机游戏《文明》的百科求文明帝国2攻略和秘籍文明帝国无法提供维护费怎么办文明帝国unciv无法提供维护费怎么办北美没发展出华夏文明,南美何以出现文明帝国单机游戏《文明》的百科《文明》(Civilization),又称《文明帝国》,由

2024年6月27日 03:55

盛大下载器官方下载(盛大热血传奇客户端哪里下)

盛大下载器官方下载(盛大热血传奇客户端哪里下)

本文目录盛大热血传奇客户端哪里下冒险岛怎么下载传奇1.76的客户端去哪下载就要1.76的~传奇世界下载步骤彩虹岛下载步骤热血传奇怎么下载盛大传奇客户端怎么下载在什么地方下盛大热血传奇客户端哪里下传奇客户端在盛大官网就可以下载,官网提供一键自

2024年6月12日 21:28

阿狸qq皮肤(怎样弄阿狸QQ皮肤)

阿狸qq皮肤(怎样弄阿狸QQ皮肤)

本文目录怎样弄阿狸QQ皮肤英雄联盟中阿狸的皮肤及其价格阿狸的皮肤介绍怎样弄阿狸QQ皮肤我的就是阿狸的,现在网上找个阿狸的皮肤你自己喜欢的,然后保存到电脑上,然后打开扣扣主面板,点那个小衣服换皮肤点击自定义找到那个阿狸的皮肤换上即可~搜阿狸皮

2024年5月18日 18:32

tt手游平台官网下载(tt手游平台在哪下载)

tt手游平台官网下载(tt手游平台在哪下载)

各位老铁们好,相信很多人对tt手游平台官网下载都不是特别的了解,因此呢,今天就来为大家分享下关于tt手游平台官网下载以及tt手游平台在哪下载的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录tt手游平台在哪下载最新

2024年7月20日 20:42

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1153
标签列表

热门搜索