【Android】获取屏幕分辨率和顶栏高度全屏和横屏

Android Camera2 全屏预览适配实战:告别拉伸与黑边的终极方案 本文深入探讨了Android Camera2 API实现全屏预览时画面变形与黑边问题的根源,并提供了实战解决方案。核心在于通过动态选择最优预览尺寸,并结合矩阵变换进行视觉适配,从而告别拉伸与黑边。文章详细介绍了尺寸筛选逻辑、矩阵变换原理,并分享了多品牌真机适配经验与性能优化技巧,帮助开发者实现沉浸式相机预览。 阅读详情
//获取屏幕分辨率 方法1
<span style="white-space:pre">		</span>DisplayMetrics dm = new DisplayMetrics(); 
		android.view.Display display = getWindowManager().getDefaultDisplay(); 
		display.getMetrics(dm); 
	  <span style="white-space:pre">	</span>screen_w  = dm.widthPixels;
		screen_h = dm.heightPixels;

<pre name="code" class="java">//获取屏幕分辨率 方法

<span style="white-space:pre">		</span>WindowManager windowManager = getWindowManager();

<span style="white-space:pre">		</span>Display display = windowManager.getDefaultDisplay();

<span style="white-space:pre">		</span>screenWidth = display.getWidth();

<span style="white-space:pre">		</span>screenHeight = display.getHeight();



	// 获取手机状态栏高度
	public static int getStatusBarHeight(Context context) {
		Class<?> c = null;
		Object obj = null;
		Field field = null;
		int x = 0, statusBarHeight = 0;
		try {
			c = Class.forName("com.android.internal.R$dimen");
			obj = c.newInstance();
			field = c.getField("status_bar_height");
			x = Integer.parseInt(field.get(obj).toString());
			statusBarHeight = context.getResources().getDimensionPixelSize(x);
		} catch (Exception e1) {
			e1.printStackTrace();
		}
		return statusBarHeight;
	}
	//用的时候直接调用这个方法。


以下粘贴自,http://xqjay19910131-yahoo-cn.iteye.com/blog/1435249


-----------------------------------------------------------------------------------------------------------------------------------------
设置为无标题 
Java代码  

Java代码  收藏代码
  1. requestWindowFeature(Window.FEATURE_NO_TITLE);    


设置为全屏模式getWindow().setFlags 
Java代码  
Java代码  收藏代码
  1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);    



设置为横屏 
Java代码  
Java代码  收藏代码
  1. setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);   



//--------------------------------------------------------------- 


在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改
一、在代码中设置: 
Java代码  收藏代码
  1. view plaincopy to clipboardprint?  
  2.  package com.android.tutor;    
  3.  import android.app.Activity;    
  4.  import android.os.Bundle;    
  5.  import android.view.Window;    
  6.  import android.view.WindowManager;    
  7.  public class OpenGl_Lesson1 extends Activity {    
  8.      public void onCreate(Bundle savedInstanceState) {    
  9.          super.onCreate(savedInstanceState);    
  10.         //去除title      
  11.        requestWindowFeature(Window.FEATURE_NO_TITLE);      
  12.         //去掉Activity上面的状态栏  
  13.         getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,        
  14.                        WindowManager.LayoutParams. FLAG_FULLSCREEN);     
  15.               
  16.          setContentView(R.layout.main);    
  17.      }    
  18.  }   

在这里要强调一点,设置全屏的俩段代码必须在setContentView(R.layout.main) 之前,不然会报错。 

二、在配置文件里修改 
(关键代码:
Java代码  收藏代码
  1. android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
如果想只是去除标题栏就后面不用加Fullscreen了,另外,如果想要整个应用都去除标题栏和状态栏,就把这句代码加到<application。。标签里面,如果只是想某个activity起作用,这句代码就加到相应的activity上): 

Java代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>    
  2.  <manifest xmlns:android="http://schemas.android.com/apk/res/android"    
  3.        package="com.android.tutor"    
  4.        android:versionCode="1"    
  5.        android:versionName="1.0">    
  6.      <application android:icon="@drawable/icon" android:label="@string/app_name">    
  7.          <activity android:name=".OpenGl_Lesson1"    
  8.                    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"    
  9.                    android:label="@string/app_name">    
  10.              <intent-filter>    
  11.                  <action android:name="android.intent.action.MAIN" />    
  12.                  <category android:name="android.intent.category.LAUNCHER" />    
  13.              </intent-filter>    
  14.          </activity>    
  15.      </application>    
  16.      <uses-sdk android:minSdkVersion="7" />    
  17.  </manifest>     
在这里我还想说明一下,用前者在我们应用运行后,会看到短暂的状态栏,然后才全屏,而第二种方法是不会有这种情况的,所以我建议大家使用后者!




禁止转载

移动端全屏轮播实现:vh单位从零开始 通过CSS的vh单位,精准控制移动端全屏轮播的布局与高度适配,解决不同设备屏幕差异问题,实现流畅视觉体验。掌握vh单位的应用,让轮播组件更灵活高效。 阅读详情

相关推荐

Cocos Web游戏全屏适配实战:告别黑边,实现完美沉浸体验

在Web游戏和应用开发中,多分辨率适配是确保跨设备一致体验的核心技术。其原理在于通过动态计算屏幕与设计分辨率的宽高比,智能选择填充策略(如Fit Height或Fit Width),以保持原始视觉比例。这项技术的价值在于能显著提升用户体验和产品专业度,避免画面拉伸或黑边对沉浸感的破坏。在Cocos Engine开发中,结合浏览器全屏API与CSS样式管理,可实现真正的“完美全屏”。本文聚焦于解决Cocos Web游戏全屏模式下的黑边问题,通过动态适配策略和高DPI处理,确保画面无变形、无黑边地铺满屏幕,为开

weixin_33798152的博客 350

Android获取屏幕大小的方法

private int mHeight; private int mWidth; // 通过WindowManager获取DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);mHeight=dm.heightPixels;mWidth=dm.widthPixe

Faery_Fan的博客 412

Unity手游UI适配实战:键盘高度与异形屏安全区解决方案

在移动应用开发中,UI适配是确保应用在不同设备上提供一致用户体验的关键技术。其核心原理在于处理屏幕坐标系与UI布局坐标系的映射关系,以应对多样化的屏幕尺寸、比例及系统特性。这项技术的价值在于直接提升应用的稳定性和专业度,避免因UI错位、遮挡导致的用户流失。在Unity手游开发场景下,虚拟键盘弹出时的界面顶起和异形屏(如刘海屏、水滴屏)的内容遮挡是两个高频痛点。本文聚焦于解决这两个问题,提供了可复用的C#组件,详细讲解了通过监听输入焦点、计算安全区(Safe Area)以及坐标转换,实现UI面板智能位移与安全

weixin_34413103的博客 292

Android 开发中获取屏幕宽高(分辨率)的几种方式

【代码】Android 开发中获取屏幕宽高(分辨率)的几种方式。

大雪冬至的博客 6628

android8.0 Launcher源码(7)---Launcher的源码启动过程分屏模式

前面我们讲解了Launcher的源码启动过程第一步,获取硬件参数确认布局,接下来第二步就是判断是否是分屏模式,分屏模式下如何显示布局。 那么什么是分屏模式 分屏模式就是在两个或两个以上支持分屏模式的应用在前后台的时候,我们长按recent按钮,会出现屏幕一分为二的现象,这样就会有两个应用出现在前台运行。 第二步流程的源码如下: if (isInMultiWindowModeCompat()) ...

安卓兼职framework和app工程师的博客 1083

[Godot游戏开发] 安卓平台游戏如何设置窗口与分辨率:Viewport、Window Override与自适应窗口解析

在使用Godot引擎开发安卓游戏时,合理设置游戏的分辨率与窗口行为至关重要。这不仅直接影响游戏在不同设备上的展示效果,还关系到用户体验的优化和后续适配工作量的大小。本文将深入讲解如何在Godot中通过高级设置界面,使用Viewport模式、Window Override功能,以及自适应窗口设置,来精确控制游戏在安卓设备上的窗口和分辨率行为。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1433

android获取屏幕分辨率的正确方法;获取到分辨率(垂直方向像素)的不正确

我通过此方法去获取屏幕分辨率的,但获取到的分辨率有时会不准确。原因是此方法有时候会忽略一些布局或控件的高度,从而得不到正确的高度。而通过此方法则没有上述那种问题,可以获取到正确的屏幕分辨率。

jppipai的博客 2672

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale 命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。 通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的

liaowenxiong的博客 3万+

Android:获取屏幕(实际和可用)分辨率

Android:获取屏幕(实际和可用)分辨率

转载和创作优秀的博客 5498

自动化学报Ctex+texstudio配置方法

自动化学报Latex的模板win10使用方法(CTEX+texstudio)

zxy15924462502的博客 7377

[Linux项目实践] LCD Panel的硬件分析及调试

LCD硬件分析 项目使用3.5” TFT-LCD并且支持触摸控制。LCD的硬件可从几个方面学习:1)查看LCD的硬件连线。2)查看数据手册了解寄存器的控制。3)查看LCD DATASHEET了解硬件操作 1)LCD硬件连线 在图中有33个引脚,22根数据引脚和9根控制引脚。 LCD的工作原理:像素点是从左至右,从上至下逐个显示,LCD控制寄存器会从从内存中的framebuffer通

Terry_Yuan的技术专栏 3025

android gridview 固定列数,Android GridView 指定行数,动态行宽,占满空间

有时间我们需要 使用GridViw 让它占满父控件,例:特别是在适配的时间比较麻烦,在不同的机型上可能分出下,下面空的太多,或有滚动条问题,;下面说一下实现思路:首先,设置GridView 为三列,出来的为二行三列;我们在Adapter getView 中判断分辨率,得到宽度和高度,GridView 占总高度的八分中的三分;设置 Item 即每个子项的高占的空间八分中的三分的一半,宽占屏幕的三分...

weixin_30369405的博客 2036

数据架构师必看:大数据时代的架构演进与实践

数据架构是企业数据资产的“骨架”——它决定了数据能多快被处理、多准被分析、多安全被存储。本文将聚焦从传统架构到大数据架构的关键转折点,覆盖技术选型、典型场景、落地挑战三大核心命题,帮助读者建立“演进思维”而非“固定思维”。本文将按“历史演进→核心概念→技术原理→实战案例→趋势展望”的逻辑展开,用“超市仓库升级”贯穿始终,让抽象的技术概念具象化。传统数据仓库:精但小,适合结构化、批量分析。大数据架构:大但乱,适合全类型、海量数据存储。流批一体:解决实时+批量的效率问题。湖仓一体。

AI Agent Harness Engineering 914

QtScrcpy窗口最大化逻辑:保留比例与全屏模式切换

QtScrcpy作为一款高效的Android设备控制工具,其窗口显示逻辑直接影响用户操作体验。本文将深入解析QtScrcpy如何通过KeepRatioWidget组件实现窗口比例保持与全屏模式的无缝切换,帮助用户理解设备投屏时的界面渲染机制。 ## 核心组件架构 QtScrcpy的窗口比例控制核心实现于[`uibase/keepratiowidget.h`](https://link.gitc

gitblog_00605的博客 610

14、多层螺旋 CT 技术详解

本文详细解析了多层螺旋CT(MSCT)技术的原理与应用,涵盖其相对于单层螺旋CT的优势,包括图像采集速度提升、分辨率提高和噪声降低。文章深入探讨了扫描仪的几何结构、离散投影模型以及关键参数如切片宽度和螺距的影响,并重点介绍了z-滤波重建算法及其离散实现流程。通过流程图和公式推导,系统梳理了从投影获取到图像重建的全过程。同时分析了MSCT在临床中的实际应用案例及未来发展趋势,如更高分辨率、更低辐射剂量和智能化算法等方向,全面展示了MSCT在现代医学影像中的核心价值。

f0g1h2的博客 195

基于STM32L4XX 、HAL库的TMC2226-SA-T步进电机驱动器驱动程序应用设计

集成的功率MOSFET可处理高达2A RMS的电机电流,并具备保护与诊断功能,确保运行稳健可靠。作为业界最先进的STEP/DIR步进电机驱动系列,该芯片通过升级设计实现无噪音、高精度运行,为用户提供高性价比且极具竞争力的解决方案。// 用于PDN_UART单线通信。// HAL_UART_Transmit - 注意PDN_UART是单线,收发共线。.huart = &huart1, // PDN_UART连接的USART。均方根步进/方向控制接口,提供8、16、32或64微步针设置,

PP_Cottage的博客 634

android 开发中获取View视图的宽和高的几种方法

首先,有一点需要声明,其实在android中,画布Canvas的高宽其实是屏幕的高宽。 如此一来,获得屏幕高宽的方法就很多了: 1. WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth = display.get

practiceperfect的专栏 4352

157、飞控中的鲁棒自适应控制

本文总结了飞控系统中鲁棒自适应控制的实践经验。作者通过炸机案例引出传统PID控制的局限性,分析了鲁棒性与自适应性的本质矛盾,提出"用鲁棒性兜底,用自适应性提性能"的设计原则。重点介绍了模型参考自适应控制(MRAC)的实现方法,包括参考模型设计、自适应律调参技巧(建议初始增益设为0.01)、直接/间接自适应的应用场景差异,以及防止参数漂移的鲁棒修正方法。文章还分享了实际调试中的三大关键问题(初始值设定、激励条件、执行器饱和)及解决方案,并推荐了"鲁棒PID+自适应前馈"的混合架构。最后强调调试顺序应为先保证鲁

2401_88858637的博客 27

手机app在平板上没有全屏显示

由于集成的app没有源码,所以在系统源码中查找setAttributes方法的具体实现。设备实际分辨率为 1920x1080,在此方法中直接重新赋值 宽高为1920x1080。1.通过自己的demo测试得知,如下代码可以让当前窗口全屏显示。

MilesMatheson的博客 694

十九、帧间预测编码_2、解码、显示顺序与图像管理、参考帧管理

一、基本概念 1.1H.264的解码顺序和显示顺序: 解码过程中,每一帧的数据按照相应的NAL Unit在码流中的顺序传入解码器进行解码 由于B帧的存在,视频帧在输出时会进行顺序重排 1.2frame_num与POC frame_num:表示解码顺序 POC:表示显示顺序(picture_order_count) 在H.264的码流中,表示解码顺序和显示顺序分别有相应的语法元素表示。这两个值都会在码流中保存,并在读取slice信息时解析(SliceHeader中) 1.3参考帧列表 某一帧图像在解

叮咚的博客 1330

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 获取屏幕编号,怎样获取Android手机屏幕的大小(分辨率、密度)

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏this.requestWindowFeature(Window.FEATURE_NO_TITLE); //设置没有标题一些术语Screen Size 屏幕尺寸:实际的物...

weixin_42133969的博客 531

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android中获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置

首先,有一点需要声明,其实在android中,画布Canvas的高宽其实是屏幕的高宽。  如此一来,获得屏幕高宽的方法就很多了:  1.  WindowManager windowManager = getWindowManager();       Display display = windowManager.getDefaultDisplay();   

MaximusKiang的专栏 763

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android兼容oppo手机刘海屏解决方案

《解决android刘海屏的全家桶》安卓兼容所有厂商的刘海屏解决方案,oppo沉浸式的兼容dujinyang,OPPO的刘海屏适配文档稍微比较简单点,首先认识一下OPPO推出的一款屏幕高宽比更大、带有刘海的凹形屏幕的手机,其屏幕规格如下:

奥特曼超人的博客专栏 5万+

android系统手机分辨率是多少,怎样获取Android手机屏幕的大小(分辨率、密度)...

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏this.requestWindowFeature(Window.FEATURE_NO_TITLE); //设置没有标题一些术语Screen Size 屏幕尺寸:实际的物...

weixin_30691643的博客 778

禁止横竖屏

一,获取手机屏幕分辨率: DisplayMetrics dm = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels;//屏幕宽度 int height = dm.heightPixels;//屏幕高度 复制代码 二,se

androidboy365的专栏 1177
上一篇: 【Android】listView动态处理item
下一篇: 【android】时间选择器
Fried_potatoes
博客等级 码龄12年 5粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值