Android控件之TextView全解析

前言 大家好!在前几篇文章里,我们详细介绍了Android中的常用布局,使大家对Android中的页面布局有了一定认识,而对于布局中使用的一些UI控件如Button、TextView等,有的读者可能还存在一些困惑。在接下来文章中,我们将详细介绍Android开发中经常使用的UI控件,敬请期待! 简介 TextView(文本框),是Android中用于显示文本的一个控件。 常用属性详解 id:为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方...阅读全文

Segmentfault 2019-08-15 16:03:35 叮咚丶桑

布局大杀器—ConstraintLayout

前言 Hi,大家好,看到标题后大家是不是一脸懵逼,这是啥?这小编搞事情?说好的六大布局咋又来个布局杀手?这就是咱们公众号和其他公众号的不同,我们并不是照本宣科的讲解Android知识,而是将项目当中实际运用到的并且是好用的东西分享给大家,还等什么呢?赶紧开始我们的学习吧!! 引入 简介:约束布局(ConstraintLayout) 是一个ViewGroup,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整View。 说明:本博文是以ConstraintLayout1.1.3为基础...阅读全文

Segmentfault 2019-08-15 16:03:34 叮咚丶桑

六大布局之非常用布局

前言 Hi,大家好,新的一周开始啦,让我们继续遨游在Android的知识海洋中吧!上一次我们讲到了RelativeLayout,相信不少小伙伴已经着手实战,那么今天我们为大家带来六大布局中剩下的三个布局。本篇文章可以和前面的FrameLayout一同归类到Android非常用布局之中,虽然不常用,但是小伙伴们也要知道它的一些基础属性哦~ 六大布局之AbsoluteLayout 简介 AbsoluteLayout(绝对布局), 之所以把这个放到最后,是因为绝对布局,我们基本上都是不会使用的,当然你...阅读全文

Segmentfault 2019-08-15 16:03:33 叮咚丶桑

六大布局之RelativeLayout

前言 上一期我们给大家讲解了FrameLayout的使用,这一期我们为大家讲解一下RelativeLayout(相对布局)的使用,RelativeLayout是Android的六大布局之一,也是我们常用的布局之一,下面我们一起开始学习吧~ 简介 相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。相对布局和LinearLayout,FrameLayout相比较来说,性能不是最好的,但是它可以大大减少布局的结构层次,从而达到...阅读全文

Segmentfault 2019-08-15 16:03:33 叮咚丶桑

六大布局之FrameLayout

前言 上一期我们给大家讲解了LinearLayout,这一期我们为大家讲解一下FrameLayout(帧布局)的使用,相较于其他布局,FrameLayout可以说的上是最简单的一个,并且其使用范围相对来说也相对较小,但是也是Android中的六大布局之一,面试的时候还是会碰到的,所以让我们赶紧开始学习吧~ 简介 在FrameLayout中,这个布局直接在屏幕上开辟出一块空白的区域,所有添加到这个布局中的视图都是以层叠的方式显示,而它会把这些试图默认放到这块区域的左上角,第一个添加到布局中视图显示...阅读全文

Segmentfault 2019-08-15 16:03:32 叮咚丶桑

六大布局之LinearLayout

1. 什么是Layout? Layout——界面布局,为应用程序提供界面架构。控制Activity中控件的大小、位置、颜色等属性的方法. Layout 与 ViewGroup的关系 ViewGroup是一个容器,继承自View. ViewGroup是Layout和一些其它组件的基类. 在Android中提供了几个常用布局:LinearLayout 线性布局 RelativeLayout 相对布局 FrameLayout 帧布局 AbsoluteLayout 绝对布局 TableLayout 表格...阅读全文

Segmentfault 2019-08-15 15:03:36 叮咚丶桑

Android四大组件之Service

前言 Hi,大家好,上一期我们讲了如何使用BroadcastReceiver,这一期我们讲解Android四大组件之Service相关知识。每天一篇技术干货,每天我们一起进步。 耐心专注不仅仅是美德,更是一笔财富。 1.简介与定义 简介 Service是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。Service可由其他应用组件启动,而且即使用户切换到其他应用,Service仍将在后台继续运行。 此外,组件可以绑定到Service,以与之进行交互,甚至是执行进程间通信 (IPC)。...阅读全文

Segmentfault 2019-08-15 15:03:36 叮咚丶桑

Android四大组件之BroadcastReceiver

前言 Hi,大家好,又双见面啦,上一期我们讲了如何使用Activity,肯定有不少小伙伴已经创建了属于自己的FirstActivity,那么这一期我们主要为大家介绍第二个重要组件BroadcastReceiver(广播接收器)。作为Android的四大组件之二,其应用场景非常多。下面,就详细介绍下 BroadcastReceiver 的相关知识。 1. 定义 BroadcastReceiver(广播接收器)即广播,是一个全局的监听器。 Android 广播分为两个角色:广播发送者、广播接受者。 ...阅读全文

Segmentfault 2019-08-15 15:03:35 叮咚丶桑

WorkManager从入门到实践,有这一篇就够了

前言 上一次我们对Paging的应用进行了一次全面的分析,这一次我们来聊聊WorkManager。 如果你对Paging还未了解,推荐阅读这篇文章: Paging在RecyclerView中的应用,有这一篇就够了 本来这一篇文章上周就能够发布出来,但我写文章有一个特点,都会结合具体的Demo来进行阐述,而WorkManager的Demo早就完成了,只是要结合文章一起阐述实在需要时间,上周自身原因也就延期了,想想还是写代码容易啊...阅读全文

Segmentfault 2019-08-15 10:03:34 idisfkj

浅谈函数式编程

本文首发于泊浮目的简书:https://www.jianshu.com/u/204... 1. 前言 一个风和日丽的下午,我看着日常看代码做重构迁移,看到这么段代码: 突然,我看到了这样的代码: private void getTopicsDiskSizeForSomeBroker(int brokerID, AdminClient admin, Map<String, Long> topicsSizeMap) throws ExecutionException, InterruptedExce...阅读全文

Segmentfault 2019-08-11 19:03:33 泊浮目

Paging在RecyclerView中的应用,有这一篇就够了

前言 AAC是非常不错的一套框架组件,如果你还未进行了解,推荐你阅读我之前的系列文章: Android Architecture Components Part1:Room Android Architecture Components Part2:LiveData Android Architecture Components Part3:Lifecycle Android Architecture Components Part4:ViewModel 经过一年的发展,AAC又推出了一系列新的...阅读全文

Segmentfault 2019-07-31 10:03:34 idisfkj

百臂巨人与塔尔塔罗斯

前言 一款静态代码检测工具,包含阿里java规约检测和lint检测,支持自定义pmd和lint配置,结合git在代码提交时进行增量检测插件,赫卡同克瑞斯,也就是百臂巨人,来自希腊神话,是天空神乌拉诺斯和地神盖娅的儿子,拥有50头和100个手臂,在帮助宙斯夺得神位后,成为了塔尔塔罗斯的守门人,塔尔塔罗斯就是希腊神话中的地狱。 为什么要写百臂巨人 很多时候有些bug就是因为代码不规范造成的,这种低级错误往往会造成重大损失,之前就曾经碰到过在主线程加载图片的情况,之前因为运营配置的图片较小,所以也就没...阅读全文

Segmentfault 2019-07-23 22:03:36 滑板上的老砒霜

AndroidUtilCodeKTX !是时候提升你的开发效率了 !(持续更新中...)

前言 第一次接触 Kotlin 还是 2017 年,当时 Kotlin 还没扶正,也不是 Android 的官方开发语言。至于我是怎么被安利的,没记错的话,应该是 开源实验室 的 Kotlin 教程。当时身边几乎没有人在学 Kotlin,网上相关的资料也很少,我还翻译了一部分官网文档,写了一本 GitBook 。 当然现在有更好的 Kotlin 语言中文站 了,对于英文基础不是很好的同学,这是一个不错的入门资料。 两年半时间过来了,Kotlin 摇身一变,稳坐 Android 官方开发语言。尽管...阅读全文

Segmentfault 2019-07-19 16:03:35 秉心说

Android之使用Kotlin构建Gradle

Android Studio Gradle 3.4.2 5.1.1 首先kotlin-dsl不是什么新鲜的东西了,Gradle5.0发布的时候就有了Gradle Kotlin DSL目前的版本是1.0.2 现在是否可以抛弃groovy拥抱kotlin了呢,~~迁移还是有点小麻烦的! 目前在Android Studio中创建项目时,默认情况下使用Groovy创建Gradle脚本,那如何向kotlin-dsl迁移呢? 语法替换 一般情况下,Groovy中使用单引号或者双引号来表达字符串。但是Kotl...阅读全文

Segmentfault 2019-07-19 13:03:33 Reducto

只需三步实现Databinding插件化

首先为何我要实现Databinding这个小插件,主要是在日常开发中,发现每次通过Android Studio的Layout resource file来创建xml布局文件时,布局文件的格式都没有包含Databinding所要的标签<layout>。导致的问题就是每次都要重复手动修改布局文件,添加<layout>标签等。 所以为了能够偷懒,就有个这个一步生成符合Databinding的布局文件。 这篇文章不会详细讲每一个代码的实现,因为这样太浪费大家的时间,我会通过几个要点与关键代码来梳理实现过...阅读全文

Segmentfault 2019-07-17 09:03:34 idisfkj

ReentrantLock 实现原理笔记(一)

java.util.concurrent.locks.ReentrantLockexclusive : adj. (个人或集体) 专用的,专有的,独有的,独占的; 排外的; 不愿接收新成员(尤指较低社会阶层)的; 高档的; 豪华的; 高级的 reentrant : 可重入; 可重入的; 重入; 可再入的; 重进入 一切从 Thread 线程开始 独占线程 exclusiveOwnerThread 出场: package java.util.concurrent.locks; /** * A sy...阅读全文

Segmentfault 2019-07-12 02:03:37 陈光剑

Flutter个人填坑指南详解

Flutter个人填坑指南详解 第一步 安装解压完flutter后,按照flutter的官方教程,首先需要在你的IDE或者编译器(vscode)里安装插件,分别是 flutter 和dart的插件(我使用的是AS,所以下文以AS为例) 第二步---配置环境变量 由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用户环境变量中 第三步 进入Flutter的目录中,运行命令行脚本 第一个问题!!!! 运行flutter doct...阅读全文

Segmentfault 2019-07-10 21:03:35 Superning

工作日志,多租户模式下的数据备份和迁移

工作日志,多租户模式下的数据备份和迁移 记录和分享一篇工作中遇到的奇难杂症。目前做的项目是多租户模式。一套系统管理多个项目,用户登录不同的项目加载不同的数据。除了一些系统初始化的配置表外,各项目之间数据相互独立。前期选择了共享数据表的隔离方案,为后期的数据迁移挖了一个大坑。这里记录填坑的思路。可能不优雅,仅供参考。 多租户 多租户是一种软件架构,在同一台(组)服务器上运行单个实例,能为多个租户提供服务。以实际例子说明,一套能源监控系统,可以为A产业园提供服务,也可以为B产业园提供服务。A的管理员...阅读全文

Segmentfault 2019-07-10 19:03:33 itdragon

一、apk签名(必须)

一、apk签名(必须)1.apk签名(数字签名)apk签名:开发者(开发商)通过数字证书(也可以叫签名文件),给apk应用打上带有个人(公司)信息的标记,以表示自己是该应用的开发者或拥有者。签名后的apk解压后能看到META-INF文件夹,并且里面会有3个签名相关的文件(MANIFEST.MF,CERT.SF,CERT.RSA)数字签名: 哈希算法(sha1, md5) + 私钥加密查看apk的拥有者keytool -printcert -file CERT.RSA关于Android数字签名相关...阅读全文

CSDN博客 2019-07-10 15:01:36 weixin_40855550

android:paddingLeft和android:layout_marginLeft区别:

android:paddingLeft和android:layout_marginLeft区别: 当你在LinearLayout中分别设置 android:layout_marginLeft="52dip"和android:paddingLeft="52dip"的时候,也许你在及时显示界面看到的效果是一样的,但是这两个属性是有区别的,android:layout_marginLef是设置整个布局离左边的距离是52像素,而android:paddingLeft是设置布局里面的内容距离左边是52像素...阅读全文

CSDN博客 2019-07-04 21:01:35 dbkmeteor