随笔分类 -  Android

1
摘要:"源码Demo:请点击此处" 前言 在我们开发中,自定义View是非常常用的,这篇文章主要是和大家分享一下:如何自定义一个简单的组合布局(我的RelativeLayout) 接下来:我将分解每一个步骤,并附带简单的代码说明 + 1. 在 res/values 目录下新建一个 attrs.xml 文件 阅读全文
posted @ 2019-09-27 17:41 ming3 阅读(171) 评论(0) 推荐(0)
摘要:前言 相信大家在开发工作中,会经常遇见某个控件被重复点击,可能就会造成一些不可预知的问题。例如:跳转某个activity时,点击过快可能就会创建两个相同的界面~ 今天就和大家来分享下,利用 kotlin 的拓展函数和拓展属性解决这种问题 第一步: 在 res/values 目录下创建一个 ids.x 阅读全文
posted @ 2019-09-27 14:26 ming3 阅读(2918) 评论(1) 推荐(0)
摘要:前言 "源码Demo:请点击此处" 先看下效果吧~ 功能实现疑难点分析 分析: 1. 假设:控件 高度 均分成 26个 方块,方块的宽度和控件宽度相同。 2. 假设:每个字母 被一个方形的单元格 贴边包裹。单元格在方块内居中。 3. 每个字母的坐标(X轴、Y轴)是其左下角的位置,也就是单元格的左下角 阅读全文
posted @ 2019-09-27 13:20 ming3 阅读(573) 评论(0) 推荐(0)
摘要:前言 "源码Demo:请点击此处" Android调用系统相机会遇到的两大问题: + 1.指定存储图片路径,Android7.0及之后的机型调用系统相机会抛出android.os.FileUriExposedException异常 + 2.指定存储图片路径,调用系统相机返回 intent 为:nul 阅读全文
posted @ 2019-09-26 13:26 ming3 阅读(5162) 评论(0) 推荐(1)
摘要:Demo源码 "请点击:Github Animation" 属性动画(Property Animation) + 分类:透明动画、旋转动画、位移动画、缩放动画、组合动画 + 写法:代码中动态设置属性、使用xml文件定义属性 两种方式 与补间动画的不同点: + 属性动画可以改变控件的位置 + 旋转、位 阅读全文
posted @ 2019-09-25 16:03 ming3 阅读(979) 评论(0) 推荐(0)
摘要:Demo源码 "请点击:Github Animation" 补间动画(Tween Animation) + 分类:透明动画、旋转动画、位移动画、缩放动画、组合动画 + 写法:代码中动态设置属性、使用xml文件定义属性 两种方式 补间动画不会改变控件的位置 如果需要使用XML方式定义补间动画 首先,在 阅读全文
posted @ 2019-09-25 14:57 ming3 阅读(943) 评论(0) 推荐(0)
摘要:问题描述 写了一个透明动画(AlphaAnimation),很简单,就是让一个图片从不透明到透明循环两次。 点击按钮,执行动画,动画却没有执行。但是使用Debug发现,代码确实执行了,只是没有显示出效果。 还有一个奇怪的情况,就是当我点击了按钮,且代码执行之后,让当前activity重写走一遍onR 阅读全文
posted @ 2019-09-24 19:31 ming3 阅读(1496) 评论(0) 推荐(1)
摘要:帧动画(Drawable Animation) "Demo请点击获取:Github Animation" + 帧动画:加载一系列的图片资源,一张一张的显示播放。 + 实现步骤 1. 在res/drawable目录下创建一个xml文件,根节点是。并可以配置oneshot属性表示动画是否播放一次活反复播 阅读全文
posted @ 2019-09-24 12:58 ming3 阅读(768) 评论(0) 推荐(0)
摘要:前言 Android8.0版本开始,对静态注册广播事件做了限制。但开发中,有时候却需要实现在后台长期运行一些广播事件的监听,处理一些业务。如:时间的监听。 既然Google对配置文件中静态注册做了限制,那我们该如何在后台长期维护一个监听事件呢?下面咱们就来一起学习下吧。 正文 + 由于特殊广播静态注 阅读全文
posted @ 2019-09-23 19:34 ming3 阅读(669) 评论(1) 推荐(0)
摘要:前言 该篇文件讲述的是AIDL最基本的使用(创建、调用),关于对于AIDL更深的认识,在后续的随笔中,会持续与大家分享并探讨。 正文 + AIDL的定义(什么是AIDL?) + AIDL的应用场景(AIDL可以做什么?) + 如何写一个AIDL的应用?(代码) AIDL概述(定义) + AIDL:A 阅读全文
posted @ 2019-09-23 17:19 ming3 阅读(1269) 评论(0) 推荐(1)
摘要:问题 一 JavaBinder: Uncaught remote exception! (Exceptions are not yet supported across processes.) java.lang.RuntimeException:Can't create handler insid 阅读全文
posted @ 2019-09-23 15:50 ming3 阅读(2210) 评论(0) 推荐(0)
摘要:引言 前面介绍过了Android服务的两种开启方式:Start方式可以让服务在后台运行;bind方式能够调用到服务中的方法。 在实际的开发工作中,有很多需求是:既要在后台能够长期运行,又要在服务中操作业务。那么就需要两种方式结合在一起,才能做到我们想要的结果。 需求:模仿音乐后台播放案例,实现应用退 阅读全文
posted @ 2019-09-22 18:04 ming3 阅读(399) 评论(0) 推荐(0)
摘要:Service简单概述 Service(服务): 是一个没有用户界面、可以在后台长期运行且可以执行操作的应用组件。服务可由其他应用组件启动(如:Activity、另一个service)。此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。例如:服务可以处理网络事务、播放音乐, 阅读全文
posted @ 2019-09-22 11:39 ming3 阅读(1732) 评论(0) 推荐(0)
摘要:引言 Android系统尽可能长时间地保持应用程序进程,但为了新建或者运行更加重要的进程,总是需要清除一些进程来回收内存。为了决定保留或终止哪个进程,根据进程内运行的组件及这些组件的状态,系统把每个进程都划入一个“重要性层次结构”中。重要性最低的进程首先会被清除,然后是下一个最低的,依次类推。 重要 阅读全文
posted @ 2019-09-20 23:52 ming3 阅读(745) 评论(0) 推荐(0)
摘要:前言 Google从Android8.0版本开始,对在清单文件中静态注册广播做了限制。 特殊广播(动态注册广播接收者) 说:有序广播和无序广播之前,咱们先来说下Android中一些特殊的广播如何接收呢? + 特殊的广播: 指那些操作比较频繁的广播事件类型。如:屏幕的开、关广播,电量的变化广播等等 + 阅读全文
posted @ 2019-09-20 17:17 ming3 阅读(3840) 评论(0) 推荐(1)
摘要:引言 开发中,我们会有很多地方使用 Dialog 来展示一些提示信息或设置信息。如:用户提示、进度展示、时间设置、日期设置等。 下面我和大家一些学习下Android中常用的几种Dialog吧~ 首先, 先介绍下 Dialog 中那些类的关系 先来一波源码 ` 从上述代码中,我们可以看出: + Dia 阅读全文
posted @ 2019-09-20 12:36 ming3 阅读(4274) 评论(0) 推荐(0)
摘要:如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ 前言 Google官方声明:Beginning with Android 8.0 (API level 26), the system imposes additional restrictions on manifest 阅读全文
posted @ 2019-09-19 20:03 ming3 阅读(4810) 评论(0) 推荐(0)
摘要:显示意图 简而言之: 通过指定特定Activity的包名和类名开启Activity 应用场景: 一般应用于本App内的activity间的跳转。 XML配置信息: AndroidManifest.xml 开启方式: 隐式意图 简而言之: 通过指定一组动作或数据开启一个Activity 应用场景: 1 阅读全文
posted @ 2019-09-19 16:08 ming3 阅读(979) 评论(0) 推荐(0)
摘要:前言 相信大家在开发过程中,也遇到过下面的这种异常: 异常的解释: 就是当你尝试打开一个可读可写的数据库时,该数据库已经被关闭,打开失败就会抛出该异常~ 异常的原因: 在我们开发过程中,会有很多数据需要在本地存储(像我们公司做的是教育软件,用户会产生大量的做题数据!)。如果需要操作大量的数据,SQL 阅读全文
posted @ 2019-09-18 15:17 ming3 阅读(2271) 评论(0) 推荐(1)
摘要:首先分析一下Activity生命周期 A跳B (A finish) 生命周期顺序 onPause(A)— onCreate(B)— onStart(B)— onResume(B)— onStop(A)— onDestroy(A) A跳B再返回A (B finish ) 生命周期顺序 onPause( 阅读全文
posted @ 2019-09-17 11:52 ming3 阅读(344) 评论(0) 推荐(0)

1