android关于屏幕适配的几点建议

2023-10-26

1、使用wrap_content、match_parent、weight;
2、使用相对布局,尽量不使用绝对布局;
3、使用限定符,如:layout-large/xxx.xml,这样大屏设备就会自动使用该布局;
4、使用最小宽度限定符,如:layout-sw700dp/xxx.xml,这样当屏幕的宽度超过700dp时就会使用该布局;
5、针对不同的分辨率,提供具体的布局,如:res/layout-800x480/xxx.xml;
6、使用布局别名
如:layout下面有个布局mylayout.xml
在layout-large/xxx.xml里面使用mainlayout作为别名
<resources>  
    <item name="mainlayout" type="layout">@layout/mylayout</item>  
</resources>
7、使用.9图片,只需要有一张放在drawable下面即可;
8、使用dp,sp而不是px来作为长度单位;
9、提供大小不同的位图,如:mdpi,hdpi等目录下面要有相对应的位图;

10、判断加载的布局来决定走不同的流程,如下:

setContentView(R.layout.main_layout);//此处会根据屏幕大小加载不同的布局
Button btn1 = (Button)findViewById(R.id.btn1);//其中一个布局没有该按钮
if(btn1 == null){
    ...
}else{
    ...
}

小提示:
1、dp与Px的换算规则:以160dpi(密度)为基准,1dp=1px,若密度是320dpi,则1dp=2px,以此类推。
2、mdpi,hdpi等目录并不需要全部都放上图片,这样会使apk占用的存储空间变大,建议对那些比较重要的图片提供多个分辨率,不很重要的只提供一张即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android关于屏幕适配的几点建议 的相关文章

  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • Android 2.2 SDK - Droid X 相机活动无法正常完成

    我注意到我在 Droid X 上调用的默认相机活动与我的 Droid 和 Nexus One 上的默认相机活动看起来不同 在 Droid 和 Nexus One 上选择 确定 后 活动将完成 Droid X 有一个 完成 按钮 它将带您返回
  • 使用cameltestsupport进行Camel单元测试,模板始终为空

    我正在用 Camel 做一个简单的单元测试 我想做的就是从文件 在资源下 读取 JSON 内容 将其发送到 Java 类进行验证 这是我试图测试的路线 无论我做什么 模板 我用来发送正文 json 始终为空 这是我的代码 public cl
  • 为什么 java 编译器不报告 Intellij 中多播表达式的未经检查的强制转换警告?

    为什么下面的代码没有报告 Intellij IDEA 的未经检查的警告jdk 1 8 0 121自从Supplier
  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 无法捕获 Spring Batch 的 ItemWriter 中的异常

    我正在编写一个 Spring Batch 流程来将数据集从一个系统迁移到另一个系统 在这种情况下 这就像使用RowMapper实现在传递给查询之前从查询构建对象ItemWriter The ItemWriter称为save我的 DAO 上的
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett

随机推荐

  • 如何解决幻读?

    一 什么是幻读 幻读 一个事务按相同的查询条件重新读取以前的检索过的数据 却发现其他事务插入了满足其条件查询的新数据 这种现象被成为幻读 进行了读取 分别读取了不同的数据 重点在于新增 insert 针对多笔数据 举个例子 事务A对数据进行
  • python机器人编程——无人机python联动控制实现(VREP仿真)1——手搓一个类ROS机器人消息订阅发布模块

    目录 一 前言 二 总体设想 三 系统的组成 四 python代码构建 构建一个MessageBroker消息代理类 以下这个是常规的MessageBroker类 以下这个是引入协程的MessageBroker类 下面是使用MessageB
  • uni-app插件使用注意事项

    1 将插件设置为全局组件后需要将项目重新运行 2 有些插件的功能会互斥 不要贪多全部装上 按需安装即可
  • QT中QMap使用实例详解

    QMap QMultiMap属于关联式容器 其底层结构是通过二叉树实现 故其查找value的效率很快 QMap中的数据都是成对出现的 第一个称为key 键 第二个称value 键值 目录 实例化QMap对象 插入数据 移除数据 遍历数据 由
  • siege压力测试工具安装和介绍

    前言 最近公司有个项目需要做一个短轮询类推送服务器 推送服务器分为三种 短轮询 长轮询 长连接 用户量不大 但是为了保险起见还是做一下压力测试 用的工具是siege 目录 前言 目录 siege介绍 siege安装 siege使用 1 si
  • python爬虫---用数据解析bs4爬取整部三国演义(不用诗词名句网)

    python爬虫 用数据解析bs4爬取整部三国演义 不用诗词名句网 需求 使用bs4实现将三国演义小说的每一章的内容爬取到本地磁盘进行存储 诗词名句网无法进去 所以我自己找了个网站爬取 思路差不多 首先 对首页的页面数据进行爬取 url h
  • 矩阵的逆矩阵 和 转置矩阵

    这几天用到了逆矩阵 就在这里总结一下逆矩阵和转置矩阵 逆矩阵 逆矩阵就是一个矩阵的逆向 比如一个点乘以一个矩阵后得到了一个新的点的位置 如果想通过这个点再获得矩阵转换前的位置 那我们就需要乘以这个矩阵的逆矩阵 在Three js里面 我们可
  • 国产数据库

    作者 JiekeXu 来源 JiekeXu DBA之路 ID JiekeXu IT 大家好 我是 JiekeXu 很高兴又和大家见面了 今天和大家一起来体验一下 TiDB 5 0 欢迎点击上方蓝字关注我 标星或置顶 更多干货第一时间到达 T
  • springboot对bean的生命周期管理

    声明 代码是JavaEE开发的颠覆者 Spring Boot实战代码中的 我只是拿去学习 传统方式 public class BeanWayService public void init System out println Bean i
  • windows10上通过python3远程连接hive

    注意 impyla 既可以连接impala 也可以连接hive 环境 windows10 python版本 3 6 hive版本 1 1 impyla安装过程 安装依赖 pip3 install bit array pip3 install
  • stm32通过ESP8266连接互联网服务器,手机通过网页实现远程控制灯亮灭

    一 实验结果 最终实验结果如上图所示 由于csdn限制gif图像大小 所以模糊了点 但是还是可以看清的 图中是手机在网页中进行操作 然后发送请求到php服务器 php服务器建立tcp链接 该链接通过一个JAVA写的TCP请求转发器 把tcp
  • EasyExcel实现Excel文件导入导出

    1 EasyExcel简介 EasyExcel是一个基于Java的简单 省内存的读写Excel的开源项目 在尽可能节约内存的情况下支持读写百M的Excel github地址 https github com alibaba easyexce
  • 软考高级-信息系统项目管理工程师-备考建议

    本人参加了2023年11月的软考高项 这里分享一下关于高项的备考建议 高项一共有24章节 其中 重点是7 17这10大管理知识域 需要重点理解性学习 1 3 4 18这4章 几乎全是概念 可以阅读性的速看 把相关概念标注出来 考前在速记一下
  • 【python基础知识】18.实操-使用python自动群发邮件

    文章目录 前言 项目实操 明确项目目标 分析过程 拆解项目 逐步执行 代码实现 版本1 0 学习模块 发一封简单邮件 版本2 0 给自己发一封完整邮件 版本3 0 群发完整邮件 前言 之前 我们学习了模块相关的知识 让我们来回顾一下 回顾结
  • Vue列表渲染(v-for的使用)

    列表渲染 列表渲染的东西比较多 我们通过案例一步一步学习列表渲染的相关知识 基本列表 首先写一个基本的列表 想要把persons列表里面的对象展示在li里面 我们可以使用一个指令 v for v for vue提供给我们做循环的指令 语法类
  • Column 'goods_type' in where clause is ambiguous

    今天开发超市管理系统的时候发现了一个问题 百度了一下这个单词ambiguous是暧昧的意思 然后百度了 网上的人说是因为数据库查询的时候的多表查询中 有列名相同导致数据库不知道是那个表的列名 无法识别所以报出这个错误 错误发生在mybati
  • 记使用RabbitMQ的坑

    主要碰到以下几个问题 1 无法正常的启动rabbit服务 见图1 2 工厂启动后无法正常连接消息队列 见图2 3 1 2之后还是无法连接到消息队列 将port端口设置成5672 而不是15672 解决方法 1 针对问题1 在windows服
  • antd-vue表格实现单击或者双击

    在table表格中设置customRow属性 methods中实现 doubleClick record index return on 这里是双击 单击改成click即可 dblclick gt console log record in
  • Verilog 位拼接运算符{}语法要点总结

    Verilog 位拼接运算符语法要点总结 Verilog位拼接运算符 语法回顾 要点总结 Verilog位拼接运算符 语法回顾 verilog中 运算符用于 拼接 多个变量或者常量 基本用法如下 1 变量的拼接 wire a 3 0 b 4
  • android关于屏幕适配的几点建议

    1 使用wrap content match parent weight 2 使用相对布局 尽量不使用绝对布局 3 使用限定符 如 layout large xxx xml 这样大屏设备就会自动使用该布局 4 使用最小宽度限定符 如 lay