Android分屏显示(多窗口支持) 开发总结

article/2025/9/15 17:24:07

最近公司有分屏显示需求,遇到几点问题 ,在此记录,以做备忘。

我所谓的分屏显示,是在同一个界面内,分屏显示两个app的界面

或者是

注意点1:

系统好像没有获取应用显示的左右或者上下位置的方法,所以我采用迂回战略,使用

getWindow().getDecorView().findViewById(android.R.id.content).post(new Runnable() {@Overridepublic void run() {int[] outLocation = new int[2];getWindow().getDecorView().findViewById(android.R.id.content).getLocationOnScreen(outLocation);int x = outLocation[0];int y = outLocation[1];}
});

其中,x代表距离屏幕左边距,y代表距离屏幕上边距,如此即可知道应用处于什么位置,也可以做一些操作

注意点2:

获取分屏时app显示的宽高,这里需要说明一下,方法必须是使用activity的上下文,否则获取的值是不准确的

DisplayMetrics displayMetrics = activity.getResources().getDisplayMetrics();
int widthPixels = displayMetrics.widthPixels;
int heightPixels = displayMetrics.heightPixels;

以上即可获取app显示的宽高,但是,分屏模式下状态栏是不受控制的,即使设置了全屏模式,状态栏还是会显示出来盖在app上面影响操作,因此,app在贴近状态栏的一侧时,要去除状态栏高度才是真正的app显示的高度

int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {int statusBarHeight = getResources().getDimensionPixelSize(resourceId);heightPixels = heightPixels - statusBarHeight;
}

大概总结就这样,比较简单


http://chatgpt.dhexx.cn/article/HJXBbNW0.shtml

相关文章

android安卓手机分屏多窗口实现方法

效果图 frameborder"0" allowtransparency"true" scrolling"no" vspace"0" hspace"0" style"display: block; position: static; padding: 0px; margin: 0px; border-style: none; vertical-align: baseline; width: 3…

Android实现一键开启自由窗口、分屏、画中画模式——画中画模式

转载请注明出处:https://blog.csdn.net/sunmmer123 Android实现一键开启自由窗口、分屏、画中画模式系列 一键开启进入自由窗口模式一键开启进入分屏模式一键进入画中画模式 通过前俩篇博文,我们学习了一些多窗口模式中的自由窗口模式与分屏模式的知识 最…

Android多窗口模式(分屏模式)

Android N 支持多窗口模式,或者叫分屏模式,即在屏幕上可以同时显示多个窗口。 在手机模式下,两个应用可以并排或者上下同时显示,如图 1 所示,屏幕上半部分的窗口是系统的 CLOCK 应用,下半部分是系统设置功能…

git 命令怎么创建新分支?

问题 比如:我们要以 dev 分支创建一个 test-branch 分支。 解决 1、在本地创建一个 test-branch 分支,并切换到该分支。 git checkout -b test-branch执行完,可以使用下面命令查看是否创建了该本地分支 git branch -a2、把分支推到远程仓…

git命令之快速搭建远程仓库

首先使用系统管理员账号登录远程服务器,具体步骤如下所示: 1 安装git应用程序 sudo apt-get install git 2 创建git用户组和git用户,具体命令如下所示: groupadd git adduser git -g git 3 修改git用户默认shell为git-shell…

Git命令常用操作 代码拉取和提交

常规的git命令就是以下几个语句 项目首次拉取 git clone 项目地址url拉取并同步代码到本地 git pull将本地所有更改的文件添加到缓存区 git add .添加备注,方便之后查看历史提交记录 git commit -m "本次提交备注信息"提交到git仓库 git push

git命令之新建仓库

一. 配置git用户名 1)安装git,配置用户名和邮箱 git config --global user.name "你的用户名" git config --global user.email "你的注册邮箱" 2)使用git config --global --list查看配置 二. 工作区操作 1&#x…

常见Git命令使用

常见Git命令使用 1.初始化创库 git init 2.git status 这个命令顾名思义就是查看状态, 这个命令可以算是使用最频繁的一个命令了, 建议大家没事就输入下这个命令, 来查看你当前 git 仓库的一些状态。 3.git add 文件名 将文件添加到git仓库…

git命令拉取代码

流程 1在本地clone项目【保持与远程仓库一致】 此时已绑定远程仓库 git clone xxxx2.添加文件 3.放到暂存区 git add .4.提交到本地仓库 git commint -m "提示信息"5推送到远程仓库 git push origin master其他命令 分支命令 分支就是每个人开发 互不影响 之后…

Git 命令之stash

Git 命令之stash 前言1 stash1.1 描述1.2 应用场景命令使用 前言 使用 Git 作为代码版本管理,早已是现在开发工程师必备的技能。可大多数工程师还是只会最基本的保存、拉取、推送,遇到一些commit管理的问题就束手无策,或者用一些不优雅的方式…

git命令登录

1. 执行登陆用户名和密码命令 git config --global user.email "youexample.com" git config --global user.name "Your Name"2. 生成密钥对 ssh-keygen -t rsa -C "your_emailyouremail.com"3. 配置公钥私钥 然后将 .ssh/id_rsa.pub中的内容复…

git命令详解

一、简介 git作为应用广泛的一种分布式版本控制系统,其与svn比较最大的差别就是一个是分布式,一个是集中式,git在每个开发者的本地有一个完整的版本库,当在本地处理工作时,无需联网便可修改提交,当需要与其…

关于Git这一篇就够了

目录 前言 发展过程 集中式与分布式的区别 Debian/Linux安装Git 配置git环境:git config --global 创建本地空仓库:git init 新建文件添加到本地仓库:git add、git commit -m 改写提交:git commit --amend 查看历史提交日…

【信号与系统】—知识点:自由响应、强迫响应、暂态响应、稳态响应、零输入响应、零状态响应如何区分!

自由响应、强迫响应、暂态响应、稳态响应、零输入响应、零状态响应如何区分! 一、系统的响应划分 二、自由响应、强迫响应 自由响应和强迫响应是从数学上来分解的,没有什么物理意义,自由响应是齐次解,因为它的形式和激励无关&am…

一阶电路的零状态响应

零状态响应就是电路在零初始状态下(动态元件初始储能为零)由外施激励引起的响应。 RC电路的零状态响应 在t0时刻,开关S闭合,电路接入直流电压源US。根据KVL,有 uRuCUS (KVL ∑u0 指定回路的绕行方向是顺时针的,R、C的电压参考方向…

MATLAB:零状态响应(lsim(连续);filter(离散))、冲激响应(impulse或impz)和阶跃响应(step)、卷积(conv)

例1:求系统y(t)2y(t)100y(t)10x(t)的零状态响应,已知x(t)sin(2pt)u(t)。【连续时间系统零状态响应】 例2:求系统y(t)2y(t)100y(t)10x(t)的零状态响应,已知x(t)d(t)。(ts0;te5;dt0.01)【连续时间系统冲激响应…

连续系统的时域分析(一)LTI连续系统微分方程解法3——零状态响应的求解方法

(一)零状态响应的定义 零状态响应是系统在初始状态为零时,仅有输入信号 f ( t ) f(t) f(t)引起的响应。用 y z s ( t ) y_{zs}(t) yzs​(t)表示 (二)解题步骤 (1)当微分方程右端不含冲击函数 δ ( t ) \delta(t) δ…

《信号与系统》连续时间系统零状态响应的 MATLAB 实现

3.5.1 连续时间系统零状态响应的 MATLAB 实现 参考书籍 《信号与系统》 Matlab 库函数中的 **lsim()**能对微分方程描述的 LTI 连续时间系统的响应进行仿真。 lsim(b,a,x,t) 该调用格式中,a 和 b 是由描述系统的微分方程左边和右边系数构成的两个行向量&#xff…

Matlab计算信号和的卷积,求解微分方程的阶跃响应、冲激响应和零状态响应

参考资料: 连续时间系统的时域分析涉及到的Matlab函数: step:用于计算连续时间系统的单位阶跃响应。 impulse:用于计算连续时间系统的单位冲激响应。 lsim:用于计算连续系统在任意输入作用下的响应。 dsolve&…

实验二 信号与系统Matlab 求系统的冲激响应、阶跃响应、零状态响应

** 实验二 ** 实验内容 题目一: clear all; ts0;te5;dt0.01; num[0 3 2]; den[1 5 6]; systf(num,den); tts:dt:te; yimpulse(sys,t); plot(t,y);grid;xlabel(time(sec));ylabel(h(t))题目二: clear all; ts0;te5;dt0.01; num[0 0 1]; den[2 1 8];%…