首页 > 其他分享 >Android设置鼠标显示的屏幕

Android设置鼠标显示的屏幕

时间:2024-08-12 12:23:27浏览次数:17  
标签:鼠标 frameworks cpp displayId input Android mLocked 屏幕 viewport

@frameworks/native/services/inputflinger/reader/InputReader.cpp    
InputReader::loopOnce
    refreshConfigurationLocked(changes);
@frameworks/base/services/core/jni/com_android_server_input_InputManagerService.cpp
        mPolicy->getReaderConfiguration(&mConfig);
@frameworks/native/services/inputflinger/InputReaderBase.cpp
            outConfig->setDisplayViewports(mLocked.viewports);
                mDisplays = viewports;   //将viewports赋给mDisplays
            outConfig->defaultPointerDisplayId = mLocked.pointerDisplayId;  //设置defaultPointerDisplayId
@frameworks/native/services/inputflinger/reader/InputReader.cpp
        if (changes & InputReaderConfiguration::CHANGE_DISPLAY_INFO) {    updatePointerDisplayLocked();    }
            std::optional<DisplayViewport> viewport = mConfig.getDisplayViewportById(mConfig.defaultPointerDisplayId); //根据defaultPointerDisplayId获取对应的viewport
                for (const DisplayViewport& currentViewport : mDisplays) {   //从mDisplays里面获取Viewport
                    if (currentViewport.displayId == displayId) { return std::make_optional(currentViewport);  }
@frameworks/base/libs/input/PointerController.cpp
                mCursorController.setDisplayViewport(viewport, getAdditionalMouseResources);
@frameworks/base/libs/input/MouseCursorController.cpp
                    controller->setDisplayViewport(*viewport);   //MouseCursorController::setDisplayViewport
                        mLocked.viewport = viewport;  //设置当前使用的viewport
                        updatePointerLocked();
@frameworks/base/libs/input/SpriteController.cpp
                            mLocked.pointerSprite->setPosition(mLocked.pointerX, mLocked.pointerY);
                                invalidateLocked(DIRTY_POSITION);
                            mLocked.pointerSprite->setDisplayId(mLocked.viewport.displayId);
                                if (mLocked.state.displayId != displayId) { mLocked.state.displayId = displayId;  invalidateLocked(DIRTY_DISPLAY_ID);  } //不相等则更新displayId,设置成viewport.displayId

标签:鼠标,frameworks,cpp,displayId,input,Android,mLocked,屏幕,viewport
From: https://blog.csdn.net/wenwang88/article/details/141128381

相关文章

  • vue鼠标点击和滑动锚点
    效果<ulclass="list"><liclass="item"v-for="iteminletters":key="item":ref="item"@click="handleLetterClick"@touchstart.prevent="handleTouchStart&quo......
  • Android跨平台开发之Dart 3.5 与 Flutter 3.24:革新跨平台应用开发
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点Dart3.5与Flutter3.24:革新跨平台应用开发在软件开发领域,跨平台开发框架层出不穷,但鲜有能像Flutter这样在短时间内迅速崛起,获得广泛的认可和应用。随着Dart......
  • Android Studio报错: A problem occurred starting process command ,CreateProcess er
    AndroidStudio报错:Aproblemoccurredstartingprocesscommand,CreateProcesserror=2,系统找不到指定的文件一、遇到问题二、解决问题重新下载了22.0.7026061和22.1.7171670只在cmake.dir中修改了路径(ndk.dir中修改了路径[未尝试])clean+SyncProject,OK了!......
  • Android studio报错 Caused by: org.gradle.api.internal.plugins.PluginApplicationE
    Androidstudio报错Causedby:org.gradle.api.internal.plugins.PluginApplicationExceptionAndroidstudio运行报错:Causedby:org.gradle.api.internal.plugins.PluginApplicationException:Failedtoapplyplugin[id‘com.android.application’]解决方法:在项......
  • 「高效工具」精选5款录屏软件:探索最适合你的屏幕录制软件
    现在屏幕录制已经成为我们工作、学习及娱乐的得力助手,一款高效、易用的录屏软件,可以帮助我们制作教学视频、直播分享以及记录游戏高光时刻等等。今天我们就给大家分享5款各具特色的录屏工具,需要的朋友快来看看哪一款适合你。屏幕录制软件1:嗨格式录屏大师嗨格式录屏大师是专......
  • Android网页投屏控制从入门到放弃
    背景业务需要采集在app上执行任务的整个过程,原始方案相对复杂,修改需要协调多方人员,因而考虑是否有更轻量级的方案。原始需求:记录完成任务的每一步操作(点击、滑动、输入等)记录操作前后的截图和布局xml基于Adb的方案最容易考虑到的方案是就是通过adb去实现,要获取到当前页面......
  • JAVA监听屏幕内容
    以下是一个使用Java监听屏幕内容的示例代码:importjava.awt.AWTException;importjava.awt.Robot;importjava.awt.Rectangle;importjava.awt.Toolkit;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjavax.imageio.......
  • .NET 窗口/屏幕录制
    窗口/屏幕截图适用于截图、批注等工具场景,时时获取窗口/屏幕图像数据流呢,下面讲下视频会议共享桌面、远程桌面这些场景是如何实现画面录制的。常见的屏幕画面时时采集方案,主要有GDI、WGC、DXGI。GDIGDI(GraphicsDeviceInterface)就是使用user32下WindowsAPI来实现,是Windows......
  • .NET 窗口/屏幕截图
    图像采集源除了显示控件(上一篇《.NET控件转图片》有介绍从界面控件转图片),更多的是窗口以及屏幕。窗口截图最常用的方法是GDI,直接上Demo吧:1privatevoidGdiCaptureButton_OnClick(objectsender,RoutedEventArgse)2{3varbitmap=Ca......
  • Android Studio开发学习(八、蓝牙设备连接)
    引言        上篇我们介绍了整体蓝牙模块的基本写法AndroidStudio开发学习(七、蓝牙模块java)-CSDN博客,当然我们检测到蓝牙设备肯定会连接蓝牙,那么如何实现蓝牙连接呢,这篇博客将实现这个功能。 设备连接        connectDevice 方法用于在后台线程中尝试连......