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

相关文章

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

Linux下屏幕亮度的调节方式

《Linux下屏幕亮度的调节方式》文章介绍了Linux下屏幕亮度调节的几种方法,包括图形界面、手动调节(使用ACPI内核模块)和外接显示屏调节,以及自动调节软件(CaliseRedshift和Reds... 目录1 概述2 手动调节http://www.chinasem.cn2.1 手动屏幕调节2.2 外接显

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期