Android布局设计原则[关闭]

2024-01-01

我一直在研究针对不同屏幕尺寸、屏幕密度和方向设计布局的最佳方法,但我越来越困惑。

1. 设计密度与屏幕尺寸
我读过这个link https://stackoverflow.com/questions/22397030/difference-between-screen-size-and-screen-density-in-android

现在,在设计姜饼时应该考虑什么。每个文件夹中的布局说LDPI, HDPI and MDPI。但这会增加整个应用程序的大小。

现在我已经不再考虑LDPI了。但现在我们也有XHDPI and XXHDPI。 那么我们如何在设计所有页面的同时保持合理的尺寸呢?

屏幕尺寸、密度还是分辨率应该更优先考虑哪一个?

对于图像9-patch images可以用。创建它们的最佳工具是什么?

2.横向与纵向。

现在,在这个布局方程中,如果我们包含不同的屏幕方向布局,应用程序就会变得更庞大,工作也变得乏味。

Creating smaller xmls and including them is one good solution但即便如此,考虑到所有不同的类型,它仍然变得乏味。特别适用于 Android 4 及以上版本,每个片段都有不同的布局,

我的问题是——考虑到上述所有因素,设计布局的最佳和最有效的方法是什么。


您可以尝试以下链接: 问题似乎很广泛。但你可以读一下这个。

  1. 欢迎来到安卓设计 https://developer.android.com/design/index.html,

  2. Android 应用程序是否有标准布局,或者我应该根据第一原则设计我的布局? https://ux.stackexchange.com/questions/12035/is-there-a-standard-layout-for-an-android-app-or-should-i-design-mine-from-first,

  3. Android UI 设计的 10 个技巧 http://phandroid.com/2011/05/11/10-tips-for-android-ui-design/,

对于 9 块图像,你可以看到我写的这篇文章。

  1. android 9补丁的实用性 https://stackoverflow.com/questions/22684960/utility-of-android-nine-patch/22685252#22685252

  2. 教育指引 http://developer.android.com/distribute/essentials/quality/core.html

为了支持基于多设备布局,

请通过支持多屏 http://developer.android.com/guide/practices/screens_support.html这个链接:

对于多伙伴布局组件

res/layout/my_layout.xml             // normal screen size ("default")
res/layout-small/my_layout.xml       // small screen size
res/layout-large/my_layout.xml       // large screen size
res/layout-xlarge/my_layout.xml      // Hd tablet

用于定向。

        res/layout/              # default (portrait)
            main.xml
        res/layout-land/         # landscape
            main.xml
        res/layout-large/        # large (portrait)
            main.xml
        res/layout-large-land/   # large landscape
            main.xml


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

Android布局设计原则[关闭] 的相关文章

  • 服务如何在后台运行 - Android

    今天的采访中我被问到了这个问题 什么是服务 我对此的回答是 Service 是 Android 的基本组件 它没有 UI 并且在后台运行 Service 是否在主线程上运行 不 那么它是如何在后台运行的呢 我心里一片空白 有人可以解释一下如
  • 清晰的图标 清晰的 Android 应用程序

    你好 下午好 关于如何提高图标的 png 质量 有什么想法吗 我使用了 Android 开发者页面上的套件 但我无法获得清晰的图像 我的意思是非常清晰 我是否需要以不同的方式加载此图标 而不仅仅是拖入我的布局 谢谢 我使用这个布局
  • 在 Android 市场中以编程方式检查我的应用程序版本

    目前 我正在启动时检查应用程序版本代码 并将其与我的服务器上的最新版本代码进行匹配 并根据此匹配 我发送用户从 Android 市场获取最新更新 它运行良好 但我的问题是我必须手动更改服务器上的最新版本代码 并且我不知道新版本何时发布APK
  • 不使用eclipse安装Android模拟器

    如何在没有eclipse的电脑上安装android模拟器 android模拟器无需安装eclipse 只需下载 android sdk 并安装即可 安装android SDK之前必须先安装JDK 完成后安装成功 您将获得两个应用程序 SDK
  • 新安装的Eclipse和Android SDK。无法让模拟器工作。挂在时钟屏幕上

    我对开发是全新的 我已经安装了 Eclipse 和 Andoid SDK 但是 我无法让模拟器工作 我已经尝试过示例记事本代码和 Hello Android 教程代码 每次我尝试运行任一应用程序时 它都会挂在时钟屏幕上 屏幕上还显示正在充电
  • Android 在 Windowmanager 中调整视图大小

    这是我的代码 menubuttonClosed li inflate R layout menu button null menubutton ImageButton menubuttonClosed findViewById R id m
  • 在活动启动期间优雅地处理屏幕方向变化

    我正在尝试找到一种方法来正确处理设置活动 其中活动的方向是根据启动它的意图中的数据确定的 这是一款用户可以选择关卡的游戏 其中一些是纵向的 一些是横向的 我面临的问题是setRequestedOrientation ActivityInfo
  • Android - 使用 SAX 解析器解析大文件

    我正在尝试使用 SAX 解析器解析来自 webservice 的 xml 数据 当我尝试使用 URL 解析数据 大小 7 4MB 时 它工作正常 但是当我从 URL 复制 xml 数据并放置 xml 文件时 size 7 4MB 在raw文
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 片段活动中的 commitAllowingStateLoss()

    我的应用程序使用片段活动 它仅处于纵向模式 无法旋转屏幕 最初我使用的是commit 方法 但现在我计划不加区别地将这些更改为commitAllowingStateLoss 对于碎片活动 是否有任何理由不不加区别地执行此操作而不重新评估我使
  • 通过配置更改保留 CoroutineScope 的干净方法,无需 ViewModel

    我知道建议是在我们的 Activity 中使用 ViewModel 这样我们就可以使用它viewModelScope 由于 ViewModel 的寿命比 Activity 的寿命长 因此我们不必取消以下作业activity onDestro
  • 如何在Room的数据库迁移中正确添加索引?

    我在迁移 Room 数据库时遇到问题 在更新的数据库中 我必须将一个字段从整数更改为双精度值 我读到它并不像听起来那么容易 为了做到这一点 我必须使用这个更改后的属性创建新的临时表 复制前一个表中的所有值 删除旧的值 最后重命名临时表 我的
  • 如何让surfaceview透明

    大家好 我想让我的 DrawingSurface 视图透明 我尝试了很多东西 但它不起作用 这是我的 xml 代码 使我的表面视图透明
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Grade Plugin 3-alpha1 输出文件导致错误

    我正在尝试将项目更新到 Android Studio 3 build gradle 文件中不再接受以下代码片段 applicationVariants all variant gt variant outputs each out gt d
  • Android - 检测视图上的双击和三次点击

    我一直在尝试构建一个可以检测双敲击和三敲击的敲击检测器 在我的努力失败后 我在网上搜索了很长时间以找到可以使用的东西 但没有运气 奇怪的是 像这样的图书馆如此稀缺 有什么帮助吗 你可以尝试这样的事情 尽管我通常建议不要使用三次点击作为一种模
  • JavaScript 点击事件在 Android 4.0.4 默认浏览器上的 Samsung Galaxy SIII 上不起作用

    我在 Android 4 0 4 上使用 Samsung Galaxy SIII 的默认浏览器时遇到了最奇怪的问题 对于以下页面 单击链接将不会触发 JavaScript 处理程序 从其中一个 div 的内容中删除单个 a 字母使它们再次工
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • 在两个片段之间拖放视图

    我目前正在尝试在两个片段之间实现拖放 我已经将它们添加到我的活动中 如下所示 FragmentManager fm getFragmentManager FragmentTransaction ft fm beginTransaction
  • Android Webview隐私浏览

    我在我的 Android 应用程序中使用 webview 从多个站点获取一些网页 我对 webview 行为有一些疑问 webview 是否存储历史记录 cookie 表单自动填充信息 如果是的话 我们可以阻止它这样做吗 如果 Webvie

随机推荐

  • CPU 总使用率 - 多核系统

    我正在使用 xen 并与xen top我得到了 CPU 总使用率的百分比 NAME STATE CPU sec CPU MEM k MEM MAXMEM k MAXMEM VCPUS NETS NETTX k NETRX k VBDS VB
  • 日期时间差异返回正确的月份甚至年份?

    是否有任何内置函数如何以比仅天数更好的方式获取 DateTime 对象之间的差异 我的意思是 1 个月零 23 天 我发现由于每个月的天数 闰年等不同 计算起来非常困难 谢谢 看一下野田时间 http noda time googlecod
  • “Typemock Isolator”如何模拟静态方法?

    正如你们中的一些人所知 通常不可能在 net 中模拟静态方法 通过模拟 我的意思是用具有相同签名的另一个方法替换类中的方法 通常用于测试目的 用于模拟方法的两种主要方法是将其声明为虚拟方法或在接口中定义它 net 静态方法不允许使用这两种方
  • Chrome“无法拖动”图标会干扰鼠标悬停事件,我该如何防止这种情况?

    下面是一些使用 JavaScript 创建一堆 div 元素来充当像素的代码 我为 mouseover 事件添加了一个事件侦听器 并检查鼠标是否被按下 如果按下鼠标 我会更改该像素的颜色 最终结果是一个简单的绘图函数 我相信使用 HTML5
  • Entity Framework Core:获取所有表的列表

    如何获取数据库上下文中 Entity Framework Core 中所有表的列表 以下答案适用于 Entity Framework 5 中的早期版本 我们目前使用的是 EF Core 3 如何获取 EF 5 中所有实体的列表 https
  • 在 Propel 1.5 中执行多个条件的连接

    这个问题是从问题而来的here https stackoverflow com questions 6877226 rewriting not in sub select as join for propel and here https
  • 带有复杂编辑器的 JTable

    我有许多用于 JTable 的自定义编辑器 可以轻描淡写地说 其可用性 尤其是在使用键盘进行编辑方面 缺乏可用性 主要原因是我的编辑器总是在与此类似 尽管通常更复杂 的情况下创建 Override public Component getT
  • 从 SELECT 插入但更改一列?

    想知道是否有一种方法可以将行从另一个表插入到另一个表中 但一列除外 对于有限数量的列来说 这当然很容易 但是当列数增加时 列出所有列会有点烦人 我在想一些事情 Insert into table select replace col1 wi
  • Autofac。如何使用自定义方法(属性)来解析某些接口?

    我有以下接口 public interface IConfigurationProvider
  • Opera 跨源资源共享

    有人找到了 Opera 关于跨源资源共享的解决方法吗 我想做一个跨域XmlHttpRequest从我放置在 bar com 上的脚本到我的域 foo com The standard http www w3 org TR cors 目前为止
  • 跨文件的代码组织必须处理模板函数和内联

    我正在维护一个大型模板类库 它们基于以下任意一个执行代数计算float or double类型 许多类都有访问器方法 getter 和 setter 和其他运行少量代码的函数 因此当编译器找到它们的定义时 需要将这些函数限定为内联 相比之下
  • 可以聚合根实体调用存储库

    聚合根实体是否可以有一个方法来调用存储库 我知道不应该 但想得到确认 因为埃里克的书也没有明确说明任何内容 还有一件事 我在哪里可以获得领域驱动设计的单元测试示例 这有点宗教问题 有些人认为这没有问题 而另一些人可能认为这样做是异端邪说 虽
  • 事件侦听器完成后调用函数 - Javascript

    有没有办法在 Javascript 中调用函数EventListener已完成运行任何附加代码 我正在使用一个外部库EventListener 它在调用侦听器时执行特定操作 我需要在外部库的代码完成运行后运行我的函数 我要求一种EventL
  • Unity冷却时间实现

    我正在尝试在 Unity 项目中实现冷却时间 虽然这段代码似乎有意义 但它不起作用 发布的代码是一个全面的基本运动脚本 我尝试用 a 做某事cooldown time deltatime 但这似乎不起作用 我已经尝试了多种方法 但似乎没有一
  • Symfony 5.1.3 清除缓存时出现问题:尝试从命名空间加载类“MappingDriverChain”

    我已将 symfony 应用程序更新为5 1 3 但从那时起 在清除缓存时出现了类丢失异常 In App KernelDevDebugContainer php line 1050 Attempted to load class Mappi
  • 阻止 PostgreSQL 将值拆分为多行?

    我正在使用以下命令将二进制数据 bytea 数据类型转换为字符串encode foo bytea base64 但输出被分成多行 RECORD 1 req id 132675 b string d4IF4jCCBd4GCSqGSIb3DQE
  • “请求的模块'不提供名为'default'的导出”错误,但仅在相对导入中

    我从外部有这个 api 模块 当它作为 node module 安装时 使用 npm install 然后执行如下导入即可 import MyAPI from api 但是 当我查看 node modules 中的 api 文件夹并取出 a
  • 如何使用 Python 解码内存中的 JPEG XR 文件

    我正在使用 Python 3 处理显微镜生成的文件 该文件本质上是数千张 Jpeg XR 压缩图像的集合 我需要将它们全部读入内存 现在我正在以二进制模式读取数据 将它们保存在 jxr 文件中 并调用 JxrDecApp exe 将其转换为
  • 在生成的实体框架类上实现 INotifyPropertyChanged

    我有一个 SQL 数据库 并且正在实现一个 WPF UI 来更新它 如果我使用 EF5 从数据库生成类 如何在生成的类和属性上实现 INotifyPropertyChanged 以便我可以轻松地使用 UI 绑定到它们 有没有一种简单的方法可
  • Android布局设计原则[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我一直在研究针对不同屏幕尺寸 屏幕密度和方向设计布局的最佳方法 但我越来越困惑 1 设计密度与屏幕尺寸我读过这个link https stack