最轻量级最完整的屏幕适配完全适配各个手机方案
当你看到这篇博客的时候,说明你已经迈出了惊人的一步,已经慢慢进入高级资深开发工程师行列了,这是开发之路必备技能。
当你接到一个任务时,每天按照需求原型、设计师UI图立刻积极的开发完成后,满满的兴高采烈去打包提测,板凳还没做安稳,测试人员就提了一个又一个的BUG,作为一个开发人员,有BUG很常见,没BUG那是不存在的,相信大家都深有体会;
有BUG那就看看提的是什么BUG吧,一打开BUG列表就傻了眼,适配问题这个那个一堆,是不是感觉心力交瘁?业务交互上的BUG通过开发工具报错信息针对性解决就行,这各个手机,各个机型如何完全适配?关键是领导是不是经常说Android为什么问题这么多?和IOS相比,开发时间慢,整天加班,开发完成这个问题那个问题,层次不穷,大家有没有觉得脸上无光?是不是经常恨不得一拍桌子吼一句“老子不干了”,整天忙忙碌碌开发任务,最后毫无价值可言,任何人被这样天天说就算脾气再好也有点承受不住了吧!!!
如果你也正在承受这个死循环的阶段,那这篇文章就是救命稻草啊,特别是最后一条,一次付出终身受益,后续只需关注自己的业务相关,适配完全不需要特别关注,请继续往下看。
说起屏幕适配、机型适配,相信各位都能侃侃而谈几句,这些都是之前的方案,已经不能完全适配现有大部分手机了,不知各位有没有发现,现在的手机设置里面有个显示缩放选项,啥?不光可以控制字体粗细、字体大小,竟然还能设置页面缩放?哈哈哈,不要惊讶,博主第一次看到这个选项的时候也是愣了半天,困难的是之前的适配已经不能起到作用了,继续往下看。
屏幕适配一般可以从几个方向入手:
- 图片适配;
- Layout文件夹、Values文件夹、Dimens文件夹;
- 字体是否跟随系统;
一:图片适配
图片适配其实说起来很简单,做起来就是一个体力活,具体如何来做呢?
- 在res文件夹下创建mipmap-mdpi,mipmap-hdpi,mipmap-xhdpi,mipmap-xxhdpi,mipmap-xxxhdpi,从设计师的图片分别下载这五套图片资源,分别放到对应的文件夹下,mipmap文件夹一般放的事图片icon资源,如果是大图片或者背景图片还需要在drawable分别创建五套对应的文件夹,具体为什么,这里不在科普,大家可以自行查阅;
- 如果设计给的不是图片资源,那么直接通过代码设置即可;
二:布局适配
- layout适配需要在layout文件夹下分别创建对应分辨率的文件夹,然后一套一套的创建布局文件,让设计一起每一套的布局分别设计,这个时间会花费很长的阶段;
- values适配跟layout一样的策略,不一一说明,可以参考1;
- dimens适配需要在values下面创建dimens不同分辨率的文件,然后根据屏幕分辨率,从0dp到你需要的最大dp,计算每个dp值;
三:字体是否跟随系统变化;
- 字体是否跟随系统变化相信大家都很清楚,如果上面布局适配三种没有做,那么你
相关文章:
最轻量级最完整的屏幕适配完全适配各个手机方案
当你看到这篇博客的时候,说明你已经迈出了惊人的一步,已经慢慢进入高级资深开发工程师行列了,这是开发之路必备技能。 当你接到一个任务时,每天按照需求原型、设计师UI图立刻积极的开发完成后,满满的兴高采烈去打包提测,板凳还没做安稳,测试人员就提了一个又一个的BUG,…...
IDEA安装python插件并配置
目录 一、Mac1. 安装插件2. 新建项目3. 下载第三方库4. 配置镜像源 一、Mac 1. 安装插件 在plugins中搜索python 2. 新建项目 使用本项目独享的虚拟环境,选择解释器 如果需要修改解释器可以进入project structure,在SDKs中点击,选择add py…...
简单的Python烟花代码,跨年了
运行效果 这一份烟花代码还是很有水分的,运行效果也是抽象 源代码 import turtle import random# 设置窗口大小 turtle.setup(400, 500)# 设置画笔 t turtle.Turtle() t.speed(0) t.color("red")# 画烟花 for i in range(50):t.penup()t.goto(random.r…...
社区医院儿童疫苗接种管理系统设计与开发
社区医院儿童疫苗接种管理系统设计与开发 摘要 自建国以来我国一直注重于卫生健康的建设,而儿童的生命健康更得到重视。疫苗接种作为有效防御疾病的手段之一,一直被广泛应用在世界各地。目前,有相当一部分社区准备使用信息管理系统来进行优…...
Docker下安装Redis
如果我们在Docker上直接拉取redis并运行镜像,当容器删除之后,redis容器里的数据不会被保存,所以我们在运行容器的时候,需要使用数据卷进行挂载,按照如下操作即可。 安装步骤 新建目录/opt/redis [rootlocalhost data…...
【python笔记】与网络编程相关的知识总结
前言 菜某的笔记总结 内网IP与公网IP 首先,我们知道全球电脑数量众多,但是IP有限,所以我们无法每人分配一个IP。 应对这种情况,我们就出现了内网IP和外网IP。 首先我的公司为路由器注册了一个公网IP,那么外界对我…...
【libGDX】Mesh立方体贴图(6张图)
1 前言 本文通过一个立方体贴图的例子,讲解三维纹理贴图的应用,案例中使用 6 张不同的图片给立方体贴图,图片如下。 读者如果对 libGDX 不太熟悉,请回顾以下内容。 使用Mesh绘制三角形使用Mesh绘制矩形使用Mesh绘制圆形使用Mesh绘…...
数据爬取+数据可视化实战_哪里只得我共你(Dear Jane)_词云展示----网易云
一、前言 歌词上做文本分析,数据存储在网页上,需要爬取数据下来,词云展示在工作中也变得日益重要,接下来将数据爬虫与可视化结合起来,做个词云展示案例。 二、操作步骤 代码如下: # -*- coding:utf-8 -*-…...
spring事务管理快速入门(以转账为例)
spring事务管理(以转账为例) 概述 Spring事务管理提供了一种在应用程序中管理事务的机制,它抽象了底层的事务管理细节,使得开发者可以更加专注于业务逻辑的实现,而不必过多关心事务的处理。以下是Spring事务管理的一…...
如何在VS2022上的MFC项目中操作Excel(VS2010、VS2012、VS2015、VS2017、VS2019使用方法一样)
先决条件 本机安装office2003、2007、2010、2016及以后版本,总之必须安装office导入Excel库文件,导入方式可参考: 如何在vs2017及以前版本(vs2010、vs2015)上添加 添加类型库中的MFC类如何在vs2019及以后版本(如vs2022)上添加 添加ActiveX控…...
【Java8系列06】Java8数据计算
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Andrioid T 实现充电动画(2)
Andrioid T 实现充电动画(2) 以MTK平台为例,实现充电动画 效果图 资源包 修改文件清单 system/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/prize_charge_layout.xmlsystem/vendor/mediatek/proprietary/packages/ap…...
静态方法和属性的经典使用-单例设计模式
单例设计模式 一、设计模式二、单例模式1、饿汉式2、懒汉式3、区别 单例设计模式是静态方法和属性的经典使用。 一、设计模式 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局&…...
TCP七层协议
物理层 中间的物理链接可以是光缆、电缆、双绞线、无线电波。中间传的是电信号,即010101...这些二进制位。 比特(bit)是二进制(Binary Digit)的简称,电脑所有的信息都是二进制的,就是0和1组成的。 数据链路层 早期…...
规则引擎Drools使用,0基础入门规则引擎Drools(五)实战+决策表
文章目录 系列文章索引十、个人所得税计算器实战1、名词解释2、计算规则3、实现步骤 十一、信用卡申请实战1、计算规则2、实现 十二、保险产品准入规则实战1、决策表2、基于决策表的入门案例3、保险产品规则介绍4、实现步骤5、资料 系列文章索引 规则引擎Drools使用࿰…...
Java后端开发——MVC商品管理程序
Java后端开发——MVC商品管理程序 本篇文章内容主要有下面几个部分: MVC架构介绍项目环境搭建商品管理模块Servlet代码重构BaseServlet文件上传 MVC 是模型-视图-控制器(Model-View-Controller),它是一种设计模式,也…...
【隐私计算】VOLE (Vector Oblivious Linear Evaluation)学习笔记
近年来,VOLE(向量不经意线性评估)被用于构造各种高效安全多方计算协议,具有较低的通信复杂度。最近的CipherGPT则是基于VOLE对线性层进行计算。 1 VOLE总体设计 VOLE的功能如下,VOLE发送 Δ \Delta Δ和 b b b给send…...
国产linux单用户模式破解无密码登陆 (麒麟系统用户登录密码遗忘解决办法)
笔者手里有一批国产linu系统,目前开始用在日常的工作生产环境中,我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux,统信UOS等,基本都是基于debian再开发的linux。 问题描述: 因为…...
GPT市场将取代插件商店 openAI已经关闭plugins申请,全部集成到GPTs(Actions)来连接现实世界,可以与物理世界互动了。
Actions使用了plugins的许多核心思想,也增加了新的特性。 ChatGPT的"Actions"与"Plugins"是OpenAI在GPT模型中引入的两种不同的功能扩展机制。这两种机制的目的是增强模型的功能,使其能够处理更多样化的任务和请求。下面是对两者的比…...
PHP定义的变量 常量 静态变量等储存在内存什么位置?
在 PHP 中,变量、常量和静态变量都存储在内存中。它们的存储位置和生命周期有所不同。 变量:PHP 中的变量是动态类型的,它们的值和类型可以随时改变。当 PHP 脚本执行时,会在内存中分配一块空间来存储变量的值,这个空…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
