安卓项目实战系列
智玲君
细节决定成败,态度决定一切..
展开
-
安卓项目实战之:app首页底部菜单导航栏的实现,支持未读消息数,小红点,未读消息数背景设置
前言现在市面上几乎所有的app运行首页底部都是几个Tab切换的形式,有的可能还有显示消息未读数,小红点等的需求,本人之前在项目中还是使用RadioButton的形式来实现,切换不同的Tab,在代码中控制隐藏和显示不同的Fragment,代码量还是很大的,后来在GitHub了解到一个开源的库FlycoTabLayout,发现其功能也是非常强大,我们可以用他来实现各种效果的Tab切换,包括本篇提到...原创 2018-09-17 10:27:04 · 2785 阅读 · 3 评论 -
安卓项目实战之启动页进入时(冷启动)有短暂黑屏或白屏现象的终极解决方案
问题描述 在安卓项目开发中,我们在启动app的时候,屏幕会出现一段时间的白屏或者黑屏,不同设备时间长短不同。很影响用户体验,所以我们很有必要对其进行优化。 黑白屏问题出现的原因 当我们启动一个APP时,如果该app所属的Application还没有在后台运行的话,系统会首先创建一个新的进程去运行这个APP,但进程的创建与初始化都是需要时间的,在这个动作完成之前,如果初始化的时间过长,屏幕上可...原创 2020-05-06 10:52:42 · 813 阅读 · 0 评论 -
安卓项目实战之实现顶部标题栏沉浸式渐变效果
效果图如下:实现步骤:1、继承ScrollView实现自定义的ObservableScrollView.java类,代码如下:public class ObservableScrollView extends ScrollView { /** * 回调接口监听事件 */ private OnObservableScrollViewListene...原创 2020-05-06 10:48:25 · 1388 阅读 · 1 评论 -
安卓项目实战之友盟第三方登录和分享功能的详细集成过程,集成时签名配置必要性的解释
1、获取友盟AppKey我们首先要去友盟官网注册账号并登录,然后在首页顶部导航产品栏下选择社会化分享,然后点击立即使用进入友盟分析后台,点击右上角第一个应用列表图标即可进入我创建的应用列表,如果还没有创建过应用或者想创建新的应用都可以切换到管理页面在右上角点击添加新应用进行创建,填写应用的基本信息提交之后就可以获得AppKey了。2、下载SDK下载地址:http://dev.ume...原创 2018-09-16 12:04:05 · 1419 阅读 · 0 评论 -
安卓项目实战之ByeBurger一句代码实现标题栏、导航栏滑动隐藏
简介一行代码实现标题栏和底部导航栏的出现与隐藏github地址:https://github.com/githubwing/ByeBurger效果图内容View可为:ViewPager中嵌套RecycleView内容View可为:NestedScrollView包裹TextView内容View可为:NestedScrollView包裹WebView如何使用1.在project...转载 2018-09-24 09:48:48 · 678 阅读 · 0 评论 -
安卓项目实战之:FlycoTabLayout的介绍及使用
FlycoTabLayout简介FlycoTabLayout是一个Android TabLayout库,目前包含了3个TabLayout,分别是:1、SlidingTabLayout(依赖于ViewPager一起使用)主要用于页面顶部导航Tab的实现,参照PagerSlidingTabStrip进行大量修改,新增了部分属性,支持多种风格的指示器显示,支持未读消息数和小红点显示,可以实现的效果...原创 2018-09-19 10:48:22 · 5680 阅读 · 0 评论 -
安卓项目实战之JDK,SDK安装配置,Android studio的下载安装以及基础常用设置
颠颠倒倒·原创 2018-09-21 09:05:35 · 781 阅读 · 0 评论 -
安卓项目实战之强大的智能下拉刷新上拉加载框架SmartRefreshLayout
kkk’原创 2018-10-09 00:25:40 · 1942 阅读 · 0 评论 -
安卓项目实战之其他特效
labelview - 贴纸效果,如:淘宝商品侧贴折扣:https://blog.csdn.net/xcjean/article/details/78482871AndroidSwipeLayout - 滑动Layout,支持单个View,ListView,GridView:https://github.com/daimajia/AndroidSwipeLayout状态切换的 Button,类...原创 2018-10-01 20:25:45 · 625 阅读 · 0 评论 -
安卓项目实战之BaseActivity的封装(已更新)
BaseActivity封装初步如下:/** * 我们一般会在 onCreate()与onDestory() 里面做功能初始化、注销这样一些动作, * 比如:推送的注册注销、友盟、eventbus初始化 activity管理堆栈的进栈出栈等等这些事情。 */public abstract class BaseActivity extends AppCompatActivity { ...原创 2020-05-06 10:48:12 · 3865 阅读 · 5 评论 -
安卓项目实战之ButterKnife8.8.1的详细使用
ButterKnife简介ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成...原创 2020-05-06 10:47:28 · 2352 阅读 · 0 评论 -
安卓项目实战之快速集成emojicon表情开源库
效果图:开始编码:1、添加依赖compile 'io.github.rockerhieu:emojicon:1.4.1'2、布局文件代码:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:emojicon="http://schemas.android.co转载 2018-09-21 13:33:53 · 2680 阅读 · 1 评论 -
安卓项目实战之优雅的退出APP的终极解决方案
前言现在几乎所有的app都有退出程序的功能(最常见的就是在项目主Activity中连续点击两次返回按钮退出app)至于具体如何实现退出功能,网上有罗列出以下4种方式:容器式SingleTask式广播式进程式个人比较推荐使用弱引用的容器式和SingleTask式,在SingleTask式中本人又根据具体的项目需求进行了细分,有在主Activity实现退出功能的简洁式,和在非主Acti...原创 2020-05-06 10:49:20 · 791 阅读 · 0 评论 -
安卓项目实战之具有显示,单选,多选功能的流式布局
效果演示GitHub地址:https://github.com/crazyandcoder/MultiLineChoose更多功能的流式布局用法,参见鸿洋大神的FlowLayout,GitHub地址:https://github.com/hongyangAndroid/FlowLayout使用方法1、gradle引用:compile 'liji.library.dev:multilin...原创 2018-09-21 17:54:10 · 1201 阅读 · 0 评论 -
安卓项目实战之Android 6.0运行时权限请求框架PermissionsDispatcher的使用
PermissionsDispatcher是一个用注解方式来处理Android6.0运行时权限的库,旨在高效处理权限问题。原创 2020-05-06 10:49:31 · 1352 阅读 · 0 评论 -
安卓项目实战之:数据库框架 LitePal 3.0 的使用详解
LitePal简介LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表和增删改查的操作,并且LitePal很“轻”,jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。目前LitePal的源码已经托管到了GitHub上:htt...原创 2020-05-06 10:52:30 · 14190 阅读 · 5 评论 -
网络请求框架之Retrofit 2.0的使用
Retrofit概述Retrofit2.0是一款由Square公司开发的基于OkHttp3的Restful API设计风格的HTTP网络请求框架Retrofit2.0通过注解配置网络参数,可以按照我们的规则去构造实际的HTTP请求,能够灵活设置URL、头部、请求体、返回值等,其还支持同步、异步请求数据,能灵活搭配converter-gson等多种解析框架和RxJava2的响应式编程模式,在设计...原创 2018-10-07 00:11:48 · 327 阅读 · 0 评论 -
安卓项目实战之:app展示word、excel、pdf、ppt等文件功能和腾讯TBS介绍
前言有的app可能会有这样的需求,需要在app中打开本地的word,excel等文档进行查看,我们在面对这样的需求的时候可能会一头雾水,不知道怎么来实现,这里给大家提供一种解决方案,那就是使用腾讯的浏览服务TBS(Tencent Browsing Service),TBS功能强大,查看文件只是其众多功能中的冰山一角,本文将带你一起揭开它神奇的面纱,你值得拥有!为什么会有TBS?腾讯TBS官网...原创 2018-10-14 01:25:42 · 8617 阅读 · 1 评论 -
安卓项目实战之视频形式欢迎页和长图片自动滚动的背景效果实现
本篇只是单纯的转载收藏,感恩原创,尊重原创!视频形式欢迎页效果如下图:转载自:https://github.com/watire/xiamivd长图片自动循环滚动的背景效果转载自:https://github.com/forvv231/EasyScollImage...转载 2018-09-29 09:45:02 · 652 阅读 · 0 评论 -
安卓项目实战之布局隐藏与展开效果的属性动画
效果如下:https://blog.csdn.net/debbytang/article/details/68496728转载 2018-09-29 11:02:04 · 4797 阅读 · 5 评论 -
安卓项目实战之SharedPreferences工具类封装
/** * SharedPreferences封装类SPUtils */public class SPUtils { /** * 保存在手机里面的文件名 */ public static final String FILE_NAME = "share_data"; /** * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法原创 2020-05-06 10:52:18 · 576 阅读 · 0 评论 -
安卓项目实战之Gif图片加载的最佳实践android-gif-drawable开源库的使用
前言在平时的项目开发中,我们或多或少会遇到加载gif图片这样的需求,但是Android的ImageView又无法直接加载Gif图片,面对这样的需求我们一般都会想到使用支持加载gif动图的Glide第三方库来进行实现,但是使用过程中发现Glide在加载大的gif图片时会出现卡顿,而且加载速度很慢,这很影响用户体验,所以又从网上找到另一个专门应对gif图片加载的另外一个开源库GifView,但是使用...原创 2018-09-30 12:25:38 · 2990 阅读 · 0 评论 -
安卓项目实战之ViewPager+RecycleView实现首页分页的导航菜单
效果图用过美团和饿了么的app的童鞋应该清楚这一功能。首页菜单可以分页切换,类似我们的banner广告切换效果,只不过只能手动切换。所以整个分页效果,我们可以采用Viewpager实现,里面的菜单项我们则可以采用RecyclerView实现,动态改变里面的菜单项,所以今天我们这个首页分页菜单效果,可以决定采用ViewPager+RecyclerView实现,效果如下:转载自:https://...转载 2018-10-16 23:42:48 · 7332 阅读 · 4 评论 -
安卓项目实战之DrawerLayout+NavigationView+ToolBar实现抽屉式侧边栏效果
效果图添加依赖由于用到v4包下DrawerLayout,v7包下Toolbar,和android.support.design下的NavigationView,需要在gradle中作如下配置:v4包系统默认引入compile 'com.android.support:appcompat-v7:25.3.1'compile 'com.android.support:design...原创 2018-10-20 21:17:48 · 801 阅读 · 0 评论 -
安卓项目实战之刷新显示数据变化动画
效果:一般的App在刷新之后会显示本次刷新,增加了多少内容或更新,对于新闻类或直播类,比较常见。那么,这个效果如何实现呢?下拉刷新,得到服务器的最新数据后,会得到数据集合的大小与原来的比较,得到所需的值或者获取更新数目的这个工作由服务器来完成。接下来就是通过动画来显示数据,动画可以自己实现,本次借助于第三方类库ViewAnimator实现炫酷的特效,刷新使用SmartRefresh。实现...转载 2018-10-11 00:23:00 · 763 阅读 · 0 评论 -
安卓项目实战之:倒计时类CountDownTimer的使用详解
前言在Android应用中几乎都能看到,闪屏页或者欢迎页右上角有一个 “倒计时 + 跳过” 的功能,还有就是获得验证码的倒计时功能,Android 实现倒计时的方式有多种,Handler 延时发送 Message,Timer 和 TimerTask 配合使用,使用 CountDownTimer 类等。相比而言,经过系统封装的 CountDownTimer 算是使用起来最为方便的方式之一。Cou...原创 2020-05-06 10:49:42 · 1631 阅读 · 0 评论 -
安卓项目实战:Glide3加载图片并实时监控下载进度
前言我们都知道,使用Glide来加载一张网络上的图片是非常简单的,但是让人头疼的是,我们却无从得知当前图片的下载进度。如果这张图片很小的话,那么问题也不大,反正很快就会被加载出来。但如果这是一张比较大的GIF图,用户耐心等了很久结果图片还没显示出来,这个时候你就会觉得下载进度功能是十分有必要的了。最终效果 扩展的主要思路我们知道Glide内部HTTP通讯组件的底层实现是基于HttpUrl...转载 2018-10-22 23:47:22 · 2759 阅读 · 0 评论 -
安卓项目实战之基于ZXing封装的二维码扫描库,比ZXing更方便使用
https://blog.csdn.net/qq_23547831/article/details/52037710转载 2018-10-23 00:19:34 · 637 阅读 · 0 评论 -
安卓项目实战之小功能
1.搜索结果关键字高亮显示1.工具类package com.example.admin.tingxueproject.utils;import android.content.Context;import android.text.SpannableStringBuilder;import android.text.Spanned;import android.text.TextUt...原创 2018-10-21 00:59:20 · 626 阅读 · 0 评论 -
安卓项目实战之Retrofit实现带进度的图片视频等文件的上传和下载
https://blog.csdn.net/k_bb_666/article/details/79500623https://blog.csdn.net/k_bb_666/article/details/79612555转载 2018-10-29 00:49:42 · 2394 阅读 · 0 评论 -
安卓项目实战之Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果
https://blog.csdn.net/guolin_blog/article/details/8689140转载 2018-11-19 18:52:53 · 538 阅读 · 0 评论 -
安卓项目实战之Glide高手养成(一):Glide的基本使用
前言现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有Facebook的Fresco。每一个都非常稳定,功能也都十分强大。但是它们的使用场景基本都是重合的,也就是说我们基本只需要选择其中一个来进行学习和使用就足够了。在这几个框架当中,从易用性上来...转载 2018-10-25 22:59:29 · 1098 阅读 · 0 评论 -
安卓项目实战之Glide高手养成(二):Glide强大的图片变换功能
使用Glide时普遍会遇到的一个问题,如何解决?首先我们尝试使用Glide来加载一张图片,图片URL地址是:https://www.baidu.com/img/bd_logo1.png这是百度首页logo的一张图片,图片尺寸是540*258像素。接下来我们编写一个非常简单的布局文件,如下所示:<LinearLayout xmlns:android="http://schema...转载 2018-10-26 00:28:21 · 233 阅读 · 0 评论 -
安卓项目实战之内存泄漏检测神器LeakCanary,以及华为手机上mLastSrvView引发的内存泄露解决方案
为什么会产生内存泄漏?Java内存泄漏指的是进程中某些对象(垃圾对象)已经没有使用价值了,但有另外一个正在使用的对象持有它的引用,从而导致它不能回收停留在堆内存中,这就产生了内存泄漏。无用的对象占据着内存空间,使得实际可使用内存变小,形象地说法就是内存泄漏了。内存泄露对程序产生的影响?内存泄漏是造成应用程序OOM的主要原因之一。Android系统为每个应用程序分配有限的内存,当应用中内存泄漏...转载 2018-10-23 22:46:41 · 989 阅读 · 0 评论 -
安卓项目实战之Glide高手养成(三):Glide的回调与监听
前言通过前面两篇的讲解,我们对于Glide的一些使用都有了基本了解,知道了使用Glide加载图片只需要一行代码即可:Glide.with(this).load(url).into(imageView);而在这一行代码的背后,Glide帮我们执行了成千上万行的逻辑。项目需求:将Glide加载出来的图片对象获取到,在加载到ImageView上之前对该对象进行一些处理,比如宽高动态适配等,并且...转载 2018-10-26 23:42:27 · 990 阅读 · 0 评论 -
安卓项目实战之CoordinatorLayout实现页面特效(一)
效果图如下:material design控件简介:转载自:https://blog.csdn.net/gitzzp/article/details/52573068CoordinatorLayoutCoordinatorLayout:协调者布局。它是support.design包中的控件,所以使用的时候要导入compile 'com.android.support:design:23...转载 2018-10-27 00:22:08 · 709 阅读 · 0 评论 -
安卓项目实战之强大的网络请求框架okGo使用详解(一):实现get,post基本网络请求,下载上传进度监听以及对Callback自定义的深入理解
1.添加依赖//必须使用compile 'com.lzy.net:okgo:3.0.4'//以下三个选择添加,okrx和okrx2不能同时使用,一般选择添加最新的rx2支持即可compile 'com.lzy.net:okrx:1.0.2'compile 'com.lzy.net:okrx2:2.0.2' compile 'com.lzy.net:okserver:2.0.5'...原创 2018-10-30 01:01:35 · 6216 阅读 · 4 评论 -
安卓项目实战之强大的网络请求框架okGo使用详解(二):深入理解Callback之自定义JsonCallback
更新中。。。原创 2018-10-30 01:07:58 · 6219 阅读 · 1 评论 -
安卓项目实战之:最实用的APP版本升级更新案例,适配安卓7.0
前言APP的版本升级主要分为两种方式:1.应用市场升级2.应用内升级而应用内升级的方式是目前大多数APP采用的升级更新方式。应用内升级的模式按照不同的业务需求又可以分为两种:1,强制性更新如果APP有更新,那么则弹出更新提示对话框,并且该对话框上只有一个升级按钮,并且按返回键该对话框不会消失,用户想要继续使用APP,必须等完成升级覆盖安装之后。2,选择性更新如果APP有更新...原创 2018-10-28 01:47:20 · 2985 阅读 · 0 评论 -
安卓项目实战之强大的网络请求框架okGo使用详解(三):缓存的使用
相关实体类必须实现序列化接口使用缓存前,必须让涉及到缓存javaBean对象实现Serializable接口,否者会报NotSerializableException。因为缓存的原理是将对象序列化后直接写入数据库中,如果不实现Serializable接口,会导致对象无法序列化,进而无法写入到数据库中,也就达不到缓存的效果。示例代码涉及到缓存相关的api一共是如下五个:1. cacheKey...转载 2018-11-01 20:42:20 · 1432 阅读 · 0 评论