- 博客(42)
- 问答 (1)
- 收藏
- 关注
原创 Android刘海屏、水滴屏全面屏适配详解
现在,市面上的屏幕尺寸和全面屏方案五花八门。这里使用了小米的图来说明:小米手机上述两种屏幕都可以统称为刘海屏,不过对于右侧较小的刘海,业界一般称为水滴屏或美人尖。为便于说明,后文提到的「刘海屏」「刘海区」都同时指代上图两种屏幕。刘海屏、水滴屏全面屏适配细节当我们在谈屏幕适配时,我们具体谈什么呢?适应更长的屏幕防止内容被刘海遮挡其中第一点是所有应用都需要适配的,对应下文的...
2019-07-24 11:37:43
207
原创 App定时提醒(AlarmManager实现,适配不同版本)
本文主要介绍App定时提醒的实现方式及原理。篇幅较长,先提供demo地址。项目Demo地址AlarmSampleApp定时提醒方案探讨方案一:利用 Handler 实现。Handler可以使用 sendEmptyMessageDelayed 来实现定时发送消息(提醒)的功能,但 sendEmptyMessageDelayed 方法是依赖于 Handler 所在的线程的,如果线程结束,就起...
2019-05-30 11:53:55
4691
1
原创 Flutter入门|(三)基础控件
上篇文章讲解了两种Widget,这篇文章主要讲解一下常用的基础控件的使用方法。图片主要包含Image、Icon、RawImage、AssetBundle。以下以Image的讲解为例。ImageObject -> Diagnosticable -> DiagnosticableTree -> Widget -> StatefulWidget -> Image...
2019-01-21 15:32:50
572
原创 Flutter入门|(二)Widget
WidgetFlutter Widget采用现代响应式框架构建,这是从 React 中获得的灵感,中心思想是用widget构建你的UI。 Widget描述了他们的视图在给定其当前配置和状态时应该看起来像什么。当widget的状态发生变化时,widget会重新构建UI,Flutter会对比前后变化的不同, 以确定底层渲染树从一个状态转换到下一个状态所需的最小更改。给我的感...
2019-01-11 00:22:25
657
原创 面试宝典|Android基础(二)
本篇主要讲解数据库及IPC相关文章目录数据存储相关IPC相关数据存储相关Q:Android中提供哪些数据持久存储的方法?技术点:数据持久化思路:分条解释每种数据持久存储的特点参考回答:Android平台实现数据存储的常见几种方式:File 文件存储:写入和读取文件的方法和 Java中实现I/O的程序一样。SharedPreferences存储:一种轻型的数据存储方式,...
2019-01-10 10:12:47
253
原创 面试宝典|Android基础(三)
本篇主要讲解View及Drawable相关View相关Q:MotionEvent是什么?包含几种事件?什么条件下会产生?技术点:View触控参考回答::MotionEvent是手指触摸屏幕锁产生的一系列事件。包含的事件有:ACTION_DOWN:手指刚接触屏幕ACTION_MOVE:手指在屏幕上滑动ACTION_UP:手指在屏幕上松开的一瞬间ACTION_CANCEL...
2019-01-10 10:02:54
55
原创 Flutter入门|(一)环境搭建(Mac版)
一、下载Flutter SDK两种下载方式:第一种:在Flutter官网下载。第二种:在GitHub下载源码,可以直接download zip包,也可以使用git命令行克隆,命令行如下:git clone -b beta https://github.com/flutter/flutter.git注:下载完成后,记得解压。二、配置Flutter SDK进入mac终端,直接输入命令v...
2019-01-09 17:24:29
2368
原创 面试宝典|Android基础(一)
本篇主要讲解Android四大组件以及FragmentActivity相关Q:说下Activity的生命周期?技术点:Activity生命周期思路:分条解释Activity从创建到销毁整个生命周期中涉及到的方法及作用参考回答:在Activity的生命周期涉及到七大方法,分别是:onCreate():表示Activity 正在创建,常做初始化工作,如setContentView界面...
2019-01-09 13:56:32
267
原创 Android使用WebView定位问题
最近遇到了一个问题,有一个需求是使用 WebView 来加载一个网页url,H5通过js来获取位置定位信息。以前也进行过H5需要位置信息的功能开发,不过以往的方案都是使用 Android 原生定位(集成高德/百度SDK),再将位置信息传给H5来实现,不过这次由于考虑到apk大小的问题(不再集成高德SDK)以及“懒”(不用再写定位的代码),所以就准备都让H5来做。本来认为这个方案应该是很简单的,没...
2019-01-04 16:40:52
1588
3
原创 Android版本适配(基于 6.0 ~ 9.0)
前言新年第一篇总结与分享~离19年新年就剩一个月左右了,整个公司的项目也不像以往一样紧张、忙碌,周末同事和朋友聊得最多的就是抢票和年终奖了(然而我们公司并没有
2019-01-03 13:26:46
724
原创 WebView使用详解
文章目录WebSettingsWebClientWebChromeClientWebView与原生代码的交互Java->JSloadUrlevaluateJavascriptJS->Java通过 WebView 的 addJavascriptInterface() 方法通过WebViewClient 的shouldOverrideUrlLoading()方法回调通过WebChromeC...
2018-11-19 15:08:55
3307
原创 面试宝典|计算机网络基础
Q:五层协议的体系结构分别是什么?每一层都有哪些协议?技术点:网络模型、协议思路:分条解释每层名字以及协议参考回答:物理层数据链路层:逻辑链路控制LLC、媒体接入控制MAC网络层:IP协议、地址解析协议ARP、逆地址解析协议RARP、因特网控制报文协议ICMP传输层:传输控制协议TCP、用户数据报协议UDP应用层:文件传输协议...
2018-11-06 14:43:00
186
原创 面试宝典|Java基础
Q:面向对象编程的四大特性及其含义?技术点:面向对象编程特点思路:分条简述每个特性的含义参考回答:抽象:对现实世界的事物进行概括,抽象为在计算机虚拟世界中有意义的实体封装:将某事物的属性和行为包装到对象中,构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,并且尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系继承...
2018-10-31 14:21:00
188
原创 Android动画使用方法总结
Android 中动画共三类,分别为:帧动画(Frame Animation)补间动画(Tween Animation)属性动画(Property Animation)帧动画<?xml version="1.0" encoding="utf-8"?><!--main_loading.xml--><animation-list xmlns:and...
2018-06-26 14:37:21
158
原创 资料
单元测试https://github.com/simplezhli/AndroidUT日历控件https://github.com/huanghaibin-dev/CalendarView/tree/master https://github.com/idic779/monthweekmaterialcalendarview/blob/master/README.md视频...
2018-05-23 14:33:20
977
原创 NestedScrollView中嵌套ViewPager或RecyclerView出现滑动冲突的解决
NestedScrollView嵌套ViewPager出现的滑动冲突问题描述: ViewPager无法左右滑动, 切无内容显示. 如果有相关Tab与ViewPager相绑定, 会导致Tab切换卡顿.问题布局复原: <android.support.v4.widget.NestedScrollView android:id="@+id/home_scroll_view"
2017-10-21 14:30:24
8241
1
原创 TextView动态改变显示的内容
在TextView中想要动态的显示某些值,用到%1$s,%1$d,先介绍一下:%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格 %n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00eg:
2017-09-14 16:39:39
3092
原创 RxJava2总结之自定义操作符与实用技巧
目录目录自定义操作符lift 原理图实用技巧flatMap 与 zip 配合的实用范例map的实用范例方法泛型的实用范例BehaviorSubject的使用技巧Observable 发射元素的封装范例参考文档 Thanks自定义操作符lift 原理图@Test public void lift(){ Observable.just(1,2)
2017-08-18 11:09:17
1114
原创 RxJava2总结之Subjects、Single与Completable
目录目录SubjectsSingle与CompletableSubjectsSubject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当 了Observer和Observable的角色。因为它是一个Observer,它可以订阅一个或多个 Observable;又因为它是一个Observable,它可以转发它收到(Observe)的数据,也可以发射 新的数
2017-08-18 10:45:58
1113
原创 RxJava2总结之操作详解(三)
目录目录合并操作符zip静态方法zipWithmerge静态方法mergeWithcombineLatest静态方法withLatestFromswitchMapstartWithjoin条件操作allambcontainsswitchIfEmptydefaultIfEmptysequenceEqualskipUntilskipWhiletakeUntilt
2017-08-17 19:13:38
6403
1
原创 RxJava2总结之操作详解(二)
目录目录辅助操作repeatrepeatUntildelaydelaySubscriptiondo系列doOnEachdoOnNextdoOnSubscribedoOnCompletedoOnErrordoOnTerminatedoFinallydoOnDisposematerializedematerializeobserveOnsubscribeOnsubs
2017-08-17 17:38:23
4668
原创 RxJava2总结之操作详解(一)
目录目录创建操作createjustemptynevererrortimerrangeintervalRangeintervaldeferfrom系列fromArrayfromCallablefromIterablefromFuture过滤操作elementAtIgnoreElementstake系列taketakeLasttakeUntiltakeW
2017-08-17 16:56:57
5253
原创 Rxjava2总结之基础认知
目录目录RxJava2基础认知形式正确的有限ObservableDisposable类CompositeDisposable类基础概念Scheduler schedulerCallable bufferSupplier自定义装载的容器RxJava2基础认知形式正确的有限Observable调用观察者的onCompleted正好一次或者它的onError正好一次,而且此后不能再调用观察者
2017-08-17 16:21:17
1245
原创 Dagger2关键字之注解
Dagger2的常用注解: @Inject:此注解用于告诉Dagger2,我们需要这个类的实例对象。主要用于标记哪个类是需要注入的。@Module:此注解里面全是方法,用于对外提供对象,自己定义方法,方法上使用@Provides。自定义一个类,以Module结尾,用@Module注解。@Provides:此注解用于标记方法,表示可以通过这个方法获取一个对象,一般用于自定义类中。@C
2017-08-10 20:33:41
313
原创 ScrollView嵌套RecyclerView 导致RecyclerView数据显示不全
在项目开发中遇到一个问题:ScrollView嵌套RecyclerView 导致RecyclerView数据显示不全以下为该问题的解决方式:1.ScrollView改成NestedScrollView, 并在代码中加上recyclerView.setNestedScrollingEnabled(false);备注:网上好多帖子帖子都只是说在代码中加recyclerView.setNes
2017-06-19 10:06:11
764
原创 Glide的使用 (资料)
感谢夏雨_大神的Glide系列文章! 1.Glide-入门教程 点击打开链接 2.Glide-占位图以及加载动画 点击打开链接 3.Glide-加载本地图片 点击打开链接 4.Glide-加载Gif 点击打开链接 5.Glide-绑定生命周期 点击打开链接 6.Glide-内存缓存与磁盘缓存 点击打开链接 7.Glide-通过Modules定制Gl
2017-04-07 10:43:38
364
原创 Android开发资源库
RxJava讲解:http://gank.io/post/560e15be2dca930e00da1083#toc_32EditText样式库:https://github.com/rengwuxian/MaterialEditText
2017-03-28 16:39:41
523
原创 Android应用开发所需技能自我评测
Android应用开发所需技能自我评测一个从事Android应用的开发人员所需要精通的20个技能点:1.Activity相关。App应用开发,以Activity使用最多,涉及LaunchMode、onSaveInstanceState、生命周期等技术。2.Fragment相关技术。用的人不少,想明白是咋回事的人不多。这里推荐一本书:《Creating Dynamic UI with
2017-03-23 16:44:33
526
原创 Android面试需要考察的方面
主要三方面:1.技术水平,主要是候选人的编程技术水平。2.领域知识,主要是候选人对业务的了解程度。3.软性技能,包括沟通能力、抗压能力、性格。技术水平考察:对于App而言,分为三个方向:1.应用类,比如说京东、携程、大众点评、美团这样的App,它们共同的特点是页面多,都需要频繁地调用MobileAPI获取数据,都涉及支付流程,所以这类App的开发人员需要对UI、网络、登
2017-03-23 16:16:14
437
转载 GreenDao深入使用
本文在优快云博客首发 转载请注明出处 http://blog.youkuaiyun.com/u011071427/article/details/54574171本文出自Allen李的博客GrenDao的深入使用在本文中将会讲解一些使用GreenDao的FAQ混淆### greenDAO 3-keepclassmembers class * extends
2017-03-17 15:00:21
1193
转载 Android 控件被一直点击造成问题
问题:开发过程中,我们肯定会遇到 一个按钮在用户点击第一次没有反应,然后导致用户的一顿狂点,(比如说单身n久的男同胞)然后就出现了程序奔溃(网络交互没做好,发了n次网络请求造成的),或者是退出程序了Toast提示框还在一直乱跳,等等一些问题,根本原因:用户对按钮的一顿狂点(当然了最根本的原因还是apk在手机上卡顿)解决思路:让按钮在被点击之后的一段时间类是不可点击的,是
2016-06-16 11:21:50
371
转载 这些小工具让你的Android 开发更高效
在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效。VysorVysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用。Vector Asset
2016-06-16 11:05:34
299
转载 SwitchButton 开关按钮 的多种实现方式 (附源码DEMO)
刚开始接触开关样式的按钮是在iOS系统上面,它的切换以及滑动十分帅气,深入人心。所谓的开关按钮,就是只有2个状态:on和off,下图就是系统IOS 7上开关按钮效果。起初我在Android上我只会使用CheckBox去满足对应的功能。后来,查看开发文档发现,android也有了自己的原生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Switch控件,以及使用起来十分简单的T
2016-05-20 14:01:25
672
转载 Android上改变listView的选中颜色
需要说明的是,在正常默认情况下都是选择Item橙黄色,点击Item橙黄色,但是如果你设置了Item整体布局的背景色 android:background="#000000"则,你的上面两个都会不起作用,导致你selected了Item看不出来是否选择了。转自:http://blog.youkuaiyun.com/jrcisme/article/details/7306036那如何改
2016-05-19 14:53:54
570
转载 彻底理解android中的内部存储与外部存储
我们先来考虑这样一个问题:打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的时候又是清除的哪里的数据?读完本文相信你会有答案。在android开发中我们常常听到这样几个概念,内存,内部存储,外部存储,很多人常常将这三个东西搞混,那么我们今天就先来详细说说这三个东西是怎么
2016-05-17 14:08:14
321
空空如也
android想要实现获取八位小数的纯GPS坐标,并且可以在地图上标注出来
2016-10-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人