当前位置: 首页 > news >正文

最轻量级最完整的屏幕适配完全适配各个手机方案

当你看到这篇博客的时候,说明你已经迈出了惊人的一步,已经慢慢进入高级资深开发工程师行列了,这是开发之路必备技能。

当你接到一个任务时,每天按照需求原型、设计师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使用&#xff0…...

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 脚本执行时,会在内存中分配一块空间来存储变量的值,这个空…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

TJCTF 2025

还以为是天津的。这个比较容易&#xff0c;虽然绕了点弯&#xff0c;可还是把CP AK了&#xff0c;不过我会的别人也会&#xff0c;还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...