Google Material Design 设计分享

2023-11-07

 

Material design 核心思想是把物理世界的体验带进屏幕...还原最贴近真实的体验,达到简洁与直观的效果。

详情请参阅:https://developer.android.com/design/

 

Google对app设计的一些要求案例:

1.用于Google Play列表的高分辨率图标似乎是来自非Android平台(例如非常圆角)的设计转义。在设计Android图标时,请考虑使用不同的形状

欲了解更多信息:

http://www.google.com/design/spec/style/icons.html#icons-product-icons 

2.Android平台使用者所预期的分页切换方式,是轻触分页标题或从荧屏边缘滑动

详情请参阅:

http://developer.android.com/design/building-blocks/tabs.html#scrollable

https://developer.android.com/reference/android/support/v4/view/ViewPager.html

3.排查项目配置文件中,是否有多余的敏感权限,如果有可选择删除

详情请参阅:http://developer.android.com/distribute/essentials/quality/core.html#fn

4.权限弹窗处理 ,如果使用者拒绝授予某项权限,请不要直接将使用者导向程式设定界面,而应该说明为什么程式需要这项权限才能运作

详情请参阅:https://material.io/design/platform-guidance/android-permissions.html#denied-permissions

5.为了与Android平台规范保持一致,请避免模仿与其他平台相关的UI元素,转义或特定行为,例如正确指向插入符号

https://material.io/guidelines/platforms/platform-adaptation.html
https://design.google.com/icons 

6.应用程序的targetSdkVersion必须被设置到最新版本(目前为27),以确保最新的平台行为和应用正确的默认视觉主题

7.应用栏应该蒙上了一层阴影

8.应用程序不应通过展示5星级的图形文字直接或间接索要5星评级,因为这违反了Play商店政策

google对app的设计要求比较严格,以上列出八点但不局限于这八点。

 

再来说说控件的使用,列举Material design设计推荐的一些控件:

约束布局:ConstraintLayout

https://developer.android.com/reference/android/support/constraint/ConstraintLayout

卡片式布局:CardView

https://developer.android.com/reference/android/support/v7/widget/CardView

头部应用:Toolbar

https://developer.android.com/reference/android/widget/Toolbar

应用列表:RecyclerView

https://developer.android.com/reference/android/support/v7/widget/RecyclerView

下拉刷新:SwipeRefreshLayout

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout

悬浮按钮:FloatingActionButton

https://developer.android.com/guide/topics/ui/floating-action-button

文本输入框:TextInputLayout

https://developer.android.com/reference/android/support/design/widget/TextInputLayout

开关:SwitchCompat

https://developer.android.com/reference/android/support/v7/widget/SwitchCompat

标签栏:TabLayout

https://developer.android.com/reference/android/support/design/widget/TabLayout

导航菜单:NavigationView

https://developer.android.com/reference/android/support/design/widget/NavigationView

侧滑抽屉:DrawerLayout

https://developer.android.com/training/implementing-navigation/nav-drawer

 

另外再说一下布局的阴影效果和按钮的点击效果:

设置阴影我们可以在布局控件中添加这两个属性:

android:elevation="1dp"

app:elevation="1dp"

布局点击波浪效果可以在控件中添加这个属性:

android:foreground="?android:attr/selectableItemBackground"

按钮点击波浪效果: style="@style/HeadBarStyle"

<!-- 头部应用栏按钮点击效果 -->
<style name="HeadBarStyle">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_margin">8dp</item>
    <item name="android:padding">8dp</item>
    <item name="android:scaleType">centerInside</item>
    <item name="android:background">@drawable/drawable_head_back_bg</item>
</style>

drawable-v21目录下存放drawable_head_back_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorAccent">
    <item>
        <shape android:shape="oval">
            <solid android:color="?android:colorPrimary"></solid>
        </shape>
    </item>
</ripple>

这里额外说明一下,Google对一些布局控件的宽高是有规范可参考的

详情链接:https://material.io/design/layout/spacing-methods.html#touch-click-targets

 

最后再送上一波福利,关于Material design图标设计,这里给大家引荐一个Material design图标的网址和Androidstudio的一个Material design Icon插件:

图标参考网址: https://www.materialpalette.com/icons

图标颜色可自定义,大小dp可选择,点击“OK”后图标自动保存至你的项目drawable各个目录下,超级方便且实用。

 

 

 

当app在符合Material design 设计后,它还有机会可以被google推荐至GooglePlay商店本周推荐哦~

 

有关Material Design的更多信息,请参阅:  https://material.io

 

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

Google Material Design 设计分享 的相关文章

  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Antlr 解析器运算符优先级

    考虑以下语法 我对运算符优先级有疑问 例如 res 2 a b有一个类似的解析树res 2 a b 我知道问题出在哪里 但我没有想到没有相互左递归的 漂亮 解决方案 你能帮我一点忙吗 该语法与自定义访问者一起使用 grammar Math
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • PrimeFaces 对话框参考父级

    我有一个 xhtml 页面 显示带有条目的数据表 我还有一个用于插入新条目的按钮 该按钮显示一个包含表单的对话框 插入表格用作
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • NSArrayController 无需将大型数据集加载到数组中

    我想使用 NSArrayController 向 NSTableView 提供数据 我面临的问题是我不想将所有数据预先加载到数组中 然后使用数组控制器setContent 方法 我的数据模型是一个管理数百万条记录的大型现有代码库 它包含有效
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我
  • 如何在 OSX 上安装 LaTeX .sty 文件?

    我设置了一个 LaTeX 项目 tex documents some file tex support todonotes sty where some file tex uses todonotes usepackage colorinl
  • Android 材料芯片组件崩溃应用程序。无法膨胀 xml

    Tried Chip来自两个支持库的组件 com google android support design 28 0 0 rc01和材料 com google android material material 1 0 0 rc01 堆栈
  • 禁用允许文本选择的

    残疾人可以吗
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下

随机推荐

  • Docker 安装 Nginx

    方法一 通过 Dockerfile构建 创建Dockerfile 首先 创建目录nginx 用于存放后面的相关东西 edualiyun edualiyun mkdir p nginx www nginx logs nginx conf ww
  • 光纤收发器指示灯及常见问题详解

    一 光纤收发器6指示灯的含义 光纤收发器有6个LED指示灯 它们显示了收发器的工作状态 根据LED所示 就能判断出收发器是否工作正常和可能有什么问题 从而能帮助找出故障 它们的作用分别如下所述 PWR 灯亮表示DC5V电源工作正常 FX 1
  • VisualStudio2019配置OpenCV4.5.0

    目录 一 下载安装OpenCV4 5 0 二 配置环境变量 三 配置VS2019 四 测试代码 五 测试结果 一 下载安装OpenCV4 5 0 1 进入opencv官网 2 点击Release进入Release界面 选择Windows版本
  • unity3d的血量减少和增加的数字显示制作(NGUI)

    首先说明一下为什么要放在NGUI里面讲这节内容 因为即将要用到了一个插件HUD Text 这个插件必须是在已经安装了NGUI的前提下才能安装并使用 首先安装HUD text这个插件 这个插件里面最重要的就是HUD Text这脚本下图红色线标
  • freeswitch/conference分析

    member由conference function进入 1 查找会议 如果会议不存在 则 2 创建会议 创建会议画布 conference video parse layouts 根据conference layouts conf 配置创
  • CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection---CVPR 2020

    仅翻译了与目标识别相关的内容 论文地址 https arxiv org pdf 2003 09119 pdf 源码地址 https github com KiveeDong CentripetalNet 目录 Abstract 1 Intr
  • SM3密码杂凑算法和SM2数字签名算法的PDF签名方法

    支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法 其特征在于 包括以下步骤 1 发送端发送待签名的PDF文档 2 接收端存在签名者的数字证书 接收端获取PDF文档 对签名者的数字证书的有效性进行检查 3 用SM3密码杂凑算法对获取
  • JS Base64 内容,数字加密、解密

    加密 let message Hello World let encoded btoa message console log encoded SGVsbG8gV29ybGQh 解密 let decoded atob encoded con
  • java 判断电脑盘符是否存在

    public static void lkm FileSystemView fileSystemView FileSystemView getFileSystemView 获取FileSystemView对象 File roots File
  • 全套大数据平台个人开发环境手动搭建(CDH版本) 伪分布式

    文章目录 1 简介 2 准备 2 1 关闭防火墙 2 2 免密登陆 3 通用配置 3 1 安装包准备 3 2 统一环境变量配置 1 Hadoop配置 1 1 env文件 1 2 core site xml 1 3 hdfs site xml
  • C# 扫描识别图片中的文字(.NET Framework)

    环境配置 本文以C 及VB NET代码为例 介绍如何扫描并读取图片中的文字 本次程序环境如下 Visual Studio版本要求不低于2017 图片扫描工具 Spire OCR for NET 图片格式 png 这里的图片格式支持JPG P
  • LeetCode初级算法——数组:买卖股票的最佳时机 II

    122 买卖股票的最佳时机 II 给定一个数组 它的第 i 个元素是一支给定股票第 i 天的价格 设计一个算法来计算你所能获取的最大利润 你可以尽可能地完成更多的交易 多次买卖一支股票 注意 你不能同时参与多笔交易 你必须在再次购买前出售掉
  • ora-01536:超出表空间"XXXX"的空间限额的解决办法

    原因 当前使用的用户被数据库限制了在建表的表空间 解决方案 1 alter user 用户名quota 100M on 表空间名 为指定用户在指定表空间上增加100M限额 这个数字可以任意 2 alter user 用户名quota unl
  • 云服务器应用镜像和系统镜像选哪个好?

    很多的新手用户在咨询 云服务器应用镜像和系统镜像选哪个 一般推荐选择安装系统镜像 安装纯净的操作系统 这样的话操作系统是纯净的未安装过任何环境和程序的 方便我们操作 1 服务器的镜像和操作系统是可以直接更换的 我们在阿里云的服务器后台直接就
  • ES6---new Promise()讲解(尤其注意里面的参数resolve、reject)

    ES6 new Promise 讲解 尤其注意里面的参数resolve reject 直接打印出来看看吧 console dir Promise 这么一看就明白了 Promise是一个构造函数 自己身上有all reject resolve
  • CVE-2023-25194漏洞 Apache Kafka Connect JNDI注入漏洞

    Apache Kafka 的最新更新解决的一个漏洞是一个不安全的 Java 反序列化问题 可以利用该漏洞通过身份验证远程执行代码 Apache Kafka 是一个开源分布式事件流平台 被数千家公司用于高性能数据管道 流分析 数据集成和任务关
  • 【机器学习】9、最小二乘法和岭回归

    文章目录 一 最小二乘法 线性回归 1 1 公式 1 2 矩阵 1 3 代码实现 二 岭回归 一 最小二乘法 线性回归 1 1 公式 最小二乘法的本质 公式推导过程 1 2 矩阵 假设我们有n个样本数据 每个数据有p个特征值 然后p个特征值
  • 十大思维导图软件推荐

    1 GitMind GitMind是一款电脑上好用的免费在线思维导图软件 主要功能有大纲视图 一键自动布局 多人云协作 插入富文本 批量管理文件 格式刷 自定义主题 快速查看历史版本 插入关系线 添加概括 一键分享思维导图 多格式文本导出
  • Jmeter—实现识别验证码登录

    在做自动化测试或压力测试时 验证码总是一个问题 在以往的压力测试经历中 测试一般在独立的测试环境中进行 可以放心禁用验证码或使用万能验证码 这个是最实用的 但是 这两天我尝试了一个使用第三方的图形图像识别工具来完成验证码识别并通过Jmete
  • Google Material Design 设计分享

    Material design 核心思想是把物理世界的体验带进屏幕 还原最贴近真实的体验 达到简洁与直观的效果 详情请参阅 https developer android com design Google对app设计的一些要求案例 1 用