android-屏幕适配(一)

2024-09-01 06:08
文章标签 android 屏幕 适配

本文主要是介绍android-屏幕适配(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


此文是根据慕课网的android视频自主学习整理的,视频地址。

一.有关屏幕的重要概念
1.什么是屏幕尺寸、屏幕密度、屏幕像素密度?
a.

屏幕尺寸就是手机屏幕的对角线长度。
单位是英寸,1英寸 = 2.54厘米

b.

屏幕分辨率就是手机屏幕在横纵方向上的像素点数。
单位是px,1px = 1个像素点
一般以纵向像素横向像素,如1080 720

c.

屏幕像素密度就是指每英寸上的像素点数。
单位是dpi,即“dot per inch”的缩写
屏幕像素密度是由屏幕的尺寸和屏幕的分辨率来决定的
计算方法:拿华为荣耀3c来计算, 屏幕尺寸是5英寸,分辨率是1280*720
它的像素密度 = (1280^2 + 720^2)^(1/2) / 5 = 293.7

2.什么是dp、dip、sp、px?他们之间有什么关系?

a. dp和dpi是一回事,名字不一样而已,为了和sp统一,现在多用sp。dpi上面已经解释过了,就不用多解释了。
b. px是构成图像的最小单位
c. sp是字体大小的单位,与缩放无关的抽象像素。sp和dp很相似,单位一的区别就是,android系统允许用户自定义文字的大小(小,正常,打,超大等等),当文字尺寸是正常的时候,1sp=1dp=0.00626英寸,而当文字尺寸是大或者超大的时候,1sp>1dp=0.00625英寸。

3.什么是mdpi、hdpi、xdpi、xxdpi?如何计算和区分?

它们都是表示像素密度。

名称像素密度范围
mdpi120-160dpi
hdpi160-240dpi
xhdpi240-320dpi
xxdpi320-480dpi
xxxdpi480-640dpi
二.怎么适配屏幕
1.支持各种屏幕尺寸的方法

a.使用wrap_content、match_parent、weight
warp_content:就是适配内容的大小
match_parent:就是充满父控件
weight:这个属性有点麻烦,比较难理解,我们举个例子看一下。

<!-- 我简单表示一下 就不写全了 -->
<Linearlayout><Button android:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"/><Button android:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="2"/></Linearlayout>

假如有以上布局,实际长度 = layout设置的长度+剩余的长度*weight权重
屏幕长度为L,则button1和button2的layout设置值都是L,button1的剩余长度就是总长度L-button1的长度-button2的长度,即为L-2L
L1 = L + (L - 2L) * 1/3 = 2/3L
L2 = L + (L - 2L) * 2/3 = 1/3L
这样算出来发现和我们所设置的权重值是相反的,所以我们一般都是设置为0dp
这样算的话是这样的
L1 = L * 1/3 = 1/3L
L2 = L * 2/3 = 2/3L
b.使用相符布局,禁用绝对布局
c.使用限定符-large
就是同一个布局文件同时适配不同大小的屏幕尺寸。
主要是来适配平板的。
d.使用自动拉伸位图

2.支持各种屏幕密度
3.实施自适应用户界面流程

这篇关于android-屏幕适配(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126152

相关文章

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干