当前位置: 首页 > news >正文

网站建设规划书电商网上营销的方式

网站建设规划书电商,网上营销的方式,wordpress实现文章连载目录,营业执照怎么年审鼠标客制化目的:在应用层,进入特定的应用显示自己的指定的鼠标icon,或者随时切换鼠标icon。实现方案:开机预加载鼠标icon,app发送广播方式通过不同的index,show出不同的icon。Android系统鼠标流程原理&…

鼠标客制化

目的:在应用层,进入特定的应用显示自己的指定的鼠标icon,或者随时切换鼠标icon。

实现方案:开机预加载鼠标icon,app发送广播方式通过不同的index,show出不同的icon。

Android系统鼠标流程原理:

系统开机底层会调用java的一个方法getPointerIcon去加载java层的icon资源,然后画到最顶层的surface上面,开启只执行一次。所以要随时更换鼠标图片需要打通一条路让java层调用初始化鼠标icon的方法。鼠标的一切资源都是有java层,frameworks/base/core/res/res 里面提供。包括鼠标icon,鼠标focus等。

客制化过程:

1.资源配置:

1.添加icon对应xml文件:frameworks/base/core/res/res

在这个文件夹的对应drawable-mdpi drawable-hdpi drawable-xdpi中,

放进准备好的鼠标图片资源pointer_orbbec_arrow.png

系统默认文件如下:

0818b9ca8b590ca3270a3433284dd417.png

增加完自己准备的图片和xml(xml直接复制就可以)

0818b9ca8b590ca3270a3433284dd417.png

Xml文件里的内容也要修改:

原本:

0818b9ca8b590ca3270a3433284dd417.png

添加的xml:

0818b9ca8b590ca3270a3433284dd417.png

三个drawable分别这么修改。

1.修改frameworks/base/core/res/res/values下的文件

Styles.xml中添加一个我们自己的icon item

0818b9ca8b590ca3270a3433284dd417.png

添加的ICON名字是pointerOrbbecIconArrow

Java代码中会根据这个名字来寻找图片资源,所以一定要准确。

Attrs.xml文件 添加刚才的icon

0818b9ca8b590ca3270a3433284dd417.png

到这里icon资源配置修改完毕。

2.代码修改:

1.修改JNI层代码:

frameworks/base/services/jni/com_android_server_input_InputManagerService.cpp

函数:obtainPointerController

主要是添加一个if分之对controller非空的处理,这个时候要注意要用系统原先的mouse controller故注释掉new语句。原来的if句稍作修改:

0818b9ca8b590ca3270a3433284dd417.png

这里修改了Android原生的方法getPointerIcon的参数,也就是加了一个整型参数,对应的JNI层函数声明和注册java method都要留意修改,JAVA层的接口也要对应修改。

下面是加了一if分之,因为开机第一次controller是NULL,肯定进了第一个if句,后面controller非NULL,所以想换icon就是进入下面这个if分之了:

0818b9ca8b590ca3270a3433284dd417.png

JAVA层通过渠道会调用到这个方法,这里为了不破坏这个方法的参数结构,重新声明定义了一个native函数,java层通过app不同的cmd而向JNI层下达对应cmd以show出不同的icon,具体如下:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

这边修改了JNI会掉java方法的参数getPointerIcon(),使其有个整型参数,用于区别不同的icon index。还添加了函数nativeOrbbecNotify(),所以

在这个文件的注册java method的地方也要修改: 在函数:

int register_android_server_InputManager(JNIEnv* env) {

0818b9ca8b590ca3270a3433284dd417.png

static JNINativeMethod gInputManagerMethods[] = {

0818b9ca8b590ca3270a3433284dd417.png

JNI的修改到此为止。

2.java 层的修改

Frameworks/base/services/java/com/android/server/input/InputManagerService.java

0818b9ca8b590ca3270a3433284dd417.png

另外nativeOrbbecNotify()的声明要加进去:

0818b9ca8b590ca3270a3433284dd417.png

对应JNI层的方法,添加两个索引。

以上是获取icon资源的代码,接下来开始在代码上配置刚才添加的icon。

Frameworks/base/core/java/android/view/PointerIcon.java

添加新icon的index:

0818b9ca8b590ca3270a3433284dd417.png

添加这两个index的索引功能:

0818b9ca8b590ca3270a3433284dd417.png

这个索引指向values下的attrrs.xml 和 style.xml文件中的关键变量,前面已经添加过了,注意名字要一致这些细节,上文只是举例名字可能不一样。

到此为止关于mouse的icon资源添加结束,接下来准备实现切换鼠标icon的功能。

2.Java层inputmanagerservices中添加特定广播接收机,在特定情况下切换JNI层mouse controller的icon raw内容

添加广播接收器:

Frameworks/base/services/java/com/android/server/input/InputManagerService.java

在InputManagerService构造函数中添加以下内容:

0818b9ca8b590ca3270a3433284dd417.png

注册广播接收,收到特定action“com.example.mouseicon”的时候触发事件,dispatch()接口会向JNI层调用切换icon raw。

代码修改完毕。

3.测试DEMO

新建一个android app project。

0818b9ca8b590ca3270a3433284dd417.png

测试结果:成功

后续只要在应用的oncreate和ondestroy加入以上发送广播机制,就可实现进入和退出应用的时候切换鼠标icon这个功能。

http://www.lbrq.cn/news/2536903.html

相关文章:

  • 杭州下沙开发区建设局网站指数分布的期望和方差
  • 建设网站的傻瓜图文指南代运营一个月多少钱
  • 网站信息报送制度建设旺道seo系统
  • 网站建设项目职责网络推广的工作内容
  • 做的网站第二年续费多钱直播营销的优势有哪些
  • 网站设计师工资一般多少广州百度seo优化排名
  • 网站后台购买合肥网站排名推广
  • 网站ui设计是什么意思网站维护中是什么意思
  • wordpress高级教程国外网站谷歌seo推广
  • 电脑版网站建设公司网络营销推广软件
  • 网上做娱乐广告的网站天门网站建设
  • 婚礼策划网站设计重庆关键词搜索排名
  • 网站内容很少如何做seo门户网站怎么做
  • 太原网站优化怎么做优化器
  • 郑州专业公司网站制作公司今日头条指数查询
  • 导航网站头部代码今日新闻热点大事件
  • 网站备案号码seo教学
  • 成都十大设计工作室成都seo论坛
  • 全球疫情最新公布刷seo快速排名
  • 网站建设可以一次性进损益吗哪些网站可以免费推广
  • 秦时明月的个人网站怎么做网站收录排名
  • 为博彩做网站日入两万微信运营工具
  • 做视频图片博客网站有哪些百度推广关键词技巧定价
  • 淘宝实时优惠券网站怎么做的佛山网站建设公司哪家好
  • 苏州网页制作公司哪家好seo排名优化表格工具
  • 上海企业模板建站网站优化推广怎么做
  • 营销型网站建设的流程巨量数据官网
  • 站长工具seo综合查询adc山西seo排名
  • 九江做网站的大公司惠州seo代理商
  • 互动案例的网站北京网络推广公司
  • 学习游戏制作记录(实现克隆攻击的克隆复制和水晶代替克隆)8.3
  • 服务器中切换盘的操作指南
  • 腾讯人脸识别
  • [硬件电路-143]:模拟电路 - 开关电源与线性稳压电源的详细比较
  • LLM - 智能体工作流设计模式
  • TypeScript03-web项目知识