首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java设计模式在Android中的实践

❝设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。...需要注意以下几点: (1)子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法。 (2)尽量把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类中声明的方法。...依赖倒转原则 在实现依赖倒转原则时,我们需要针对抽象层编程,而将具体类的对象通过依赖注入的方式注入到其他对象中,依赖注入是指当一个对象要与其他对象发生依赖关系时,通过抽象来注入所依赖的对象。...(3)接口注入是指通过在接口中声明的业务方法来传入具体类的对象。 这些方法在定义时使用的是抽象类型,在运行时再传入具体类型的对象,由子类对象来覆盖父类对象。...接口隔离原则 (1)在使用接口隔离原则时,我们需要注意控制接口的粒度。 (2)接口不能太小。如果太小会导致系统中接口泛滥,不利于维护; (3)接口也不能太大。

85930
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    打造 Material 字体样式主题 | 实现篇

    △ 一个按钮中使用的字体样式属性 (红色) 字体样式属性在布局和组件样式中的应用如下: android:textAppearance=”?...让我们来看看 Android 中可用的资源以及声明样式时的注意事项。 XML 和可下载字体 字体存放于 res/font 目录下,通过 @font/ 符号引用。... 计算字符间距 字符间距在 Android 中使用的测量单位 (em) 与设计工具如 Sketch 使用的测量单位 (tracking) 不同。...attr/textAppearanceBody1 额外的字体样式 如果您的设计系统需要的字体样式在 Material 主题提供的 13 种样式外,庆幸的是在 Android...您可以按如下步骤来确定哪些组件会响应主题字体样式属性的改变: 克隆 该项目 并在 Android Studio 中运行它 调整 res/values/type.xml 和 res/values/themes.xml

    1.7K20

    Qt编写控件属性设计器11-导入xml

    一、前言 上一篇文章负责把设计好的控件数据导出到了xml文件,本偏文章负责把导出的xml数据文件导入,然后在画布上自动生成对应的控件,Qt内置的xml数据解析功能,非常强大,都封装在QtXml组件中,Qt...在导出xml数据的时候,属性列表和值都按照xml的属性存储的而不是子节点,所以在解析的时候需要遍历节点的属性名称和属性值,QDomNamedNodeMap attrs = element.attributes...所有控件的属性自动提取并显示在右侧属性栏,包括枚举值下拉框等。 支持手动选择插件文件,外部导入插件文件。 可以将当前画布的所有控件配置信息导出到xml文件。...集成自定义控件属性设计器,支持拖曳设计,所见即所得,支持导入导出xml格式。 自带activex控件demo,所有控件可以直接运行在ie浏览器中。...集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。

    86200

    Android 13来了,它真的平庸又鸡肋吗?

    但在 Android 13 中情况有所改观,开发者现在只需要提供“单色版应用图标并对自适应图标 XML 做出调整”,即可启动并运行自己的主题图标方案。...这项新设计当然不只是想提供新的选择器外观或者与文件管理器不同的操作方式,而是为了让用户能在不授予存储访问权限的情况下仍能在应用内顺利完成单张照片共享。...谷歌解释道,“之前,Android 的文件选择器就一直允许用户在无需授予对设备上所有媒体文件的访问权限时,顺利在应用内共享任意类型的特定文件。...现在这种能力在照片选择器中实现了专项化,整个操作过程更加流畅。谷歌表示,启用此项功能要求移动应用支持新的“照片选择器 API”。...2018 年,谷歌曾经在一篇博文中详尽描述过这项操作在 Android 9 中的实现流程: 显示文本内容其实相当复杂,涉及多种字体、行间距、字母间距、文本方向、换行、断字等功能。

    51320

    Qt编写控件属性设计器1-加载插件

    一、前言 加载插件是整个属性设计器的第一步要打通的功能,插件中的控件都加载不了,后面就别搞别玩下去了没法玩的,要从一个动态库中加载出来控件,肯定需要用到反射机制,以前做.NET开发的时候就觉得反射这个东西相当强大...所有控件的属性自动提取并显示在右侧属性栏,包括枚举值下拉框等。 支持手动选择插件文件,外部导入插件文件。 可以将当前画布的所有控件配置信息导出到xml文件。...集成自定义控件属性设计器,支持拖曳设计,所见即所得,支持导入导出xml格式。 自带activex控件demo,所有控件可以直接运行在ie浏览器中。...集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。...所有控件最后生成一个动态库文件(dll或者so等),可以直接集成到qtcreator中拖曳设计使用。 目前已经有qml版本,后期会考虑出pyqt版本,如果用户需求量很大的话。

    1.3K00

    Android Oreo 可下载字体

    ▲ 使用布局编辑器 在源代码下拉列表中,选择 Google 字体 在 “字体” 框中,选择一种字体 选择创建可下载字体,然后单击确定 *注意:要在应用程序中捆绑字体,请选择添加字体到工程 ?                                          ...您可以根据需要使用此方法设置字体。例如,您可以在 TextView 上设置字体 覆盖 onTypefaceRequestFailed ( ) 方法来接收有关字体请求过程中的错误的信息。...如果字体在本地不可用,它会调用字体提供程序,异步获取字体,并将结果回调。...使用可下载字体作为 XML 中的资源 在 res / font 文件夹中创建一个新的 XML 文件 添加 根元素,并设置与以下示例 XML 文件所示的字体相关属性: <?...例如,getFont(R.font.font_file_name) 在清单中预先声明字体 要在清单中预先声明字体,请执行以下步骤 在 res / values / arrays.xml 中创建一个资源数组

    1.2K30

    Android Oreo 可下载字体

    ▲ 使用布局编辑器 在源代码下拉列表中,选择 Google 字体 在 “字体” 框中,选择一种字体 选择创建可下载字体,然后单击确定 *注意:要在应用程序中捆绑字体,请选择添加字体到工程                                          ...您可以根据需要使用此方法设置字体。例如,您可以在 TextView 上设置字体 覆盖 onTypefaceRequestFailed ( ) 方法来接收有关字体请求过程中的错误的信息。...如果字体在本地不可用,它会调用字体提供程序,异步获取字体,并将结果回调。...使用可下载字体作为 XML 中的资源 在 res / font 文件夹中创建一个新的 XML 文件 添加 根元素,并设置与以下示例 XML 文件所示的字体相关属性: <?...例如,getFont(R.font.font_file_name) 在清单中预先声明字体 要在清单中预先声明字体,请执行以下步骤 在 res / values / arrays.xml 中创建一个资源数组

    12410

    iOS 与 Android 的APP 设计差异

    好的设计是尊重不同平台用户习惯的设计。在为iOS和Android设计移动应用时,一定要记住平台之间的差异,这样才能设计出满足用户期望的应用。 两个平台差异的一个例子是日期选择器。...安卓用户对iOS中常见的老虎机形式的日期选择器并不熟悉。在Android中使用这种类型的日期选择器还需要重新布局,这样无形中增加了开发的难度和时间,并使界面看起来与系统风格格格不入。...左边是iOS标准日期选择器; 右边是Android标准日期选择器 左边是iOS标准选择器;右边是Android标准选择器 IOS和Android中的按钮样式 在Android设计规范中有2种不同样式的按钮...Android规范还建议将所有元素以8dp作为规范基线来设计。 字体差异 iOS的系统默认字体是San Francisco而 Android系统默认字体则是Roboto。...左边是Android字体; 右边 是iOS字体 交互细节差异 给用户的第一印象通常都是建立在设计层面。 建立用户的第一印象对产品来说很重要。

    3.5K10

    AutoJs6 – v6.2.0 – 安卓 JavaScript 自动化工具 (Auto.js 二次开发)

    软件简介: Android 平台支持无障碍服务的 JavaScript 自动化工具 需要 Android 7.0 (API 24) 及以上 克隆 (clone) 自 hyb1996/Auto.js...支持屏幕截图 / 保存截图 / 图片找色 / 图片匹配 支持 E4X (ECMAScript for XML) 编写界面 支持将脚本文件或项目打包为 APK 文件 支持利用 Root 权限扩展功能...新增 idHex 选择器 (UiSelector#idHex) (参阅 项目文档 > 选择器) 新增 action 选择器 (UiSelector#action) (参阅 项目文档 > 选择器) 新增...修复 图标选择页面的图标元素排版异常 修复 文本编辑器启动时可能因夜间模式设置导致闪屏的问题 (试修) 修复 文本编辑器设置字体大小时可用最大值受限的问题 修复 部分安卓系统脚本运行结束时日志中无法统计运行时长的问题...修复 http.post 等方法可能出现的请求未关闭异常 修复 colors.toString 方法在 Alpha 通道为 0 时其通道信息在结果中丢失的问题 优化 重定向 Auto.js 4.

    4.8K20

    (Mac)反编译Android APK详细操作指南

    早在4年前我曾发表过一篇关于《Android开发之反编译与防止反编译》的文章,我在该文章中对如何在Windows平台反编译APK做了讲解,如今用Mac系统的同学越来越多,也有很多朋友问我能否出一篇关于如何在...程序中所需要的一些资源,如图片资源,颜色资源,字符串,布局等; assets文件:assets目录下存放的是原生资源文件,比如在里面存放字体,铃声等; manifest清单文件:以AndroidManifest.xml...无论是在Windows平台还是在Mac平台,反编译APK都离不了ApkTool、dex2jar、JD-GUI 这三种工具,那么这三种工具都是做什么用的呢?...在终端输入apktool看是否可以运行,如果不可以需要在系统偏好设置中打开安全与隐私中点击仍要运行apktool.jar; 至此ApkTool的安装便完成了,在终端运行apktool命令会看到如下输出...然后在反编译后生成的目录中你会看到相关的资源文件: ? 由于APkTool只能将资源文件提取处理,对于.dex类型的文件是无法查看的,这里就需要用到dex2jar了。

    3.4K40

    零基础学HTML5和CSS3前端开发CSS基础

    2.2页内样式 页内样式的范围,比行内样式要大,在整个网页内部可以使用。...1.标签选择器 标签{ 属性:值;属性2:值2;属性3:值3} 命名时,仅数字、字母、下划线可用,且数字不可开头,标签也不可用于id命名 id选择器不可重复 独一无二 2.类选择器 类样式选择:就是给标签分类...; 在设计CSS样式;text-align:center:文本居中;right:文本居右....定义ID选择器使用#选择器名 {属性:值;属性2:值2;属性3:值3} 命名时,仅数字、字母、下划线可用,且数字不可开头,标签也不可用于class命名 一个标签可用多个类名 共性样式可以巧用 作业:大家可以使用截图的方式...在 CSS 定义中,a:active 必须位于 a:hover 之后,这样才能生效!

    8010

    【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ③ ( 在 Gradle 构建脚本中实现 AndroidManifest.xml 清单文件切换设置 )

    二、在 Gradle 构建脚本中实现 AndroidManifest.xml 清单文件切换设置 在上一篇博客 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ① ( 组件化简介...| 创建组件化应用 | 依赖库模块 / 应用模块 切换设置 ) 最后提到了 在 Gradle 构建脚本中 , 需要实现 依赖库模块 / 应用模块 切换设置 , 主要涉及如下两个方面 : build.gradle...构建脚本 切换设置 , 切换 应用 / 依赖库 ; AndroidManifest.xml 清单文件 切换设置 , 设置 启动 Activity 项 ; 在 【Android Gradle 插件】组件化中的...一、AndroidManifest.xml 清单文件切换设置 ---- 在应用中 , 每个应用 只能有一个 启动 Activity , 如果有多个肯定会报错 ; 在组件化中 : 模块化模式 : 正常的模式...构建脚本中实现 AndroidManifest.xml 清单文件切换设置 ---- 在 模块下 的 build.gradle 构建脚本 中的 " android#sourceSets#main " 层级下

    2.1K50

    零基础学前端开发之CSS基础

    2.2页内样式 页内样式的范围,比行内样式要大,在整个网页内部可以使用。...1.标签选择器 标签{ 属性:值;属性2:值2;属性3:值3} 命名时,仅数字、字母、下划线可用,且数字不可开头,标签也不可用于id命名 id选择器不可重复 独一无二 2.类选择器 类样式选择:就是给标签分类...; 在设计CSS样式;text-align:center:文本居中;right:文本居右....定义ID选择器使用#选择器名 {属性:值;属性2:值2;属性3:值3} 命名时,仅数字、字母、下划线可用,且数字不可开头,标签也不可用于class命名 一个标签可用多个类名 共性样式可以巧用 作业:大家可以使用截图的方式...在 CSS 定义中,a:active 必须位于 a:hover 之后,这样才能生效!

    5710

    实战 | 在应用中使用 Compose Material 3

    为了在 Jetchat 中实现这一点,我们首先更新 JetchatTheme 为动态配色添加一个新参数,然后使用该动态配色参数设置动态 ColorScheme,或者在不可用时回退到品牌的蓝色配色方案。...设计人员为我们提供了新的品牌字体规格,用到了自定义字体 Montserrat 和 Karla: △ Jetchat 所使用的字体规格 我们首先使用 FontFamily 类声明这些字体,该类将保存 Font...实现这些更改不需要额外的工作,在 Compose Foundation 1.1 及更高版本的滚动容器可组合项中拉伸滚动默认处于开启状态;Android 12 上提供的闪光波纹适用于所有 Material...MDC-AndroidCompose Theme Adapter 库 是一款支持重用 Android XML 主题的 Material 组件,以方便我们在 Jetpack Compose 中设置主题。...△ MDC-AndroidCompose Theme Adapter 是 XML 主题与 MaterialTheme 之间的桥梁 尾声 现在是在您的 Android 应用中试用 Compose Material

    2.9K20

    Qt编写控件属性设计器

    所有控件的属性自动提取并显示在右侧属性栏,包括枚举值下拉框等。 支持手动选择插件文件,外部导入插件文件。 可以将当前画布的所有控件配置信息导出到xml文件。...Qt编写控件属性设计器10-导出xml https://blog.csdn.net/feiyangqingyun/article/details/100797853 Qt编写控件属性设计器11-导入xml...集成自定义控件属性设计器,支持拖曳设计,所见即所得,支持导入导出xml格式。 自带activex控件demo,所有控件可以直接运行在ie浏览器中。...集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。...Qt入门书籍推荐霍亚飞的《Qt Creator快速入门》《Qt5编程入门》,Qt进阶书籍推荐官方的《C++ GUI Qt4编程》。

    3.5K10

    Qt编写控件属性设计器2-拖曳控件

    一、前言 上一篇文章把插件加载好了,并且把插件中的所有控件都显示到了列表框中,这次要做的就是实现拖曳控件的功能,用户选择一个控件拖曳到画布上,松开,在松开位置处自动实例化该控件,这个需要用到dropEvent...所有控件的属性自动提取并显示在右侧属性栏,包括枚举值下拉框等。 支持手动选择插件文件,外部导入插件文件。 可以将当前画布的所有控件配置信息导出到xml文件。...集成自定义控件属性设计器,支持拖曳设计,所见即所得,支持导入导出xml格式。 自带activex控件demo,所有控件可以直接运行在ie浏览器中。...集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。...所有控件最后生成一个动态库文件(dll或者so等),可以直接集成到qtcreator中拖曳设计使用。 目前已经有qml版本,后期会考虑出pyqt版本,如果用户需求量很大的话。

    1.3K00
    领券