Fork me on GitHub
darryrzhong

时光,不会辜负每一个平静努力的人


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 留言板

  • 摄影

  • 音乐

  • 福利

  • 书单

Android自定义View:快递时间轴实现

发表于 2019-03-28 | 分类于 Android | | 阅读次数:
字数统计: | 阅读时长 ≈

前言

  • 在Android开发中,时间轴的 UI非常常见,如下图:
    TIM图片20190327232833.jpg

  • 储备知识:
    1.自定义view基础
    2.RecyclerView的使用
    3.自定义RecyclerView.ItemDecoration

具体实现

1.最终效果如下:
TIM截图20190327231820.png

阅读全文 »

Android入门开源项目之仿开眼视频APP

发表于 2019-03-27 | 分类于 开源Demo | | 阅读次数:
字数统计: | 阅读时长 ≈

开眼短视频(OpenEyes)

仿照(开眼视频)Android端(旧版UI,新版UI已改变)做的一个App,每天更新一个精美短视频应用,一个非常美的短视频应用,UI界面基本上是参照开眼视频Android端来做的。 在该项目中,我采用的是Vitamio的视频播放器框架,下面具体介绍一下项目结构及实现功能和第三方引用.

项目结构

1.主界面主要分【每日精选】 【发现更多】 【热门排行】三个模块.
效果图如下:
每日精选.jpeg

发现更多.jpeg

热门排行.jpeg

阅读全文 »

Android之AppBarLayout实现悬停吸附伸缩效果

发表于 2019-03-27 | 分类于 Android | | 阅读次数:
字数统计: | 阅读时长 ≈

前几天看到这样一个UI效果,然后自己也仿照实现了下:

开眼app个人中心.gif

看着挺酷的,也有很多App都用到了这个UI效果,比如开眼App和沪江开心词场就用到了.
所以下面就来简单实现一下这个UI效果吧.

组合三剑客

1.AppBarLayout
2.CoordinatorLayout
3.CollapsingToolbarLayout

实现上面的UI效果需要将这三剑客的组合起来用,下面先介绍下这三个控件:

AppBarLayout:

1.AppBarLayout简单介绍

AppBarLayout是android.support:design包中的支持的控件,继承自LinearLayout,实际上就是一个垂直分布的LinearLayout.父类视图结构如下:

1
2
3
4
5
6
7
8
public class AppBarLayout 
extends LinearLayout

java.lang.Object
   ↳ android.view.View
    ↳ android.view.ViewGroup
  ↳ android.widget.LinearLayout  
 ↳ android.support.design.widget.AppBarLayout

其中官方文档中有这么两句话尤为重要:

This view depends heavily on being used as a direct child within a CoordinatorLayout. If you use AppBarLayout within a different ViewGroup, most of it’s functionality will not work.

AppBarLayout also requires a separate scrolling sibling in order to know when to scroll. The binding is done through the AppBarLayout.ScrollingViewBehavior behavior class, meaning that you should set your scrolling view’s behavior to be an instance of AppBarLayout.ScrollingViewBehavior.

意思就是说AppBarLayout 必须作为CoordinatorLayout的直接子类,否则很多功能是无法实现的.并且AppBarLayout 必须有一个能滚动的兄第ScrollView (实现了NestedScrollView,listview不可以哦),以此来通知AppBarLayout 何时进行滚动,兄弟View必须实现以下标识:

1
app:layout_behavior="@string/appbar_scrolling_view_behavior"
阅读全文 »

Android之xUtils-3.0数据库框架详解

发表于 2019-03-27 | 分类于 Android | | 阅读次数:
字数统计: | 阅读时长 ≈

在Android 开发中,数据库模块是必不可少的.现在也有许多非常好用流行的数据库快速开发框架.今天主要介绍下xUtils下封装的数据库模块.

Android 常用数据库开发框架

在这里列一下Android开发中常用的数据库框架,有情趣的可以自行了解下,顺便储备点知识.

1.OrmLite
对象关系映射Lite(ORM Lite)提供了一些简单,轻量级的功能,用于将Java对象持久保存到SQL数据库,同时避免了更多标准ORM包的复杂性和开销。

2.LitePal
LitePal是一个开源的Android库,允许开发人员非常容易地使用SQLite数据库。您可以完成大部分数据库操作,而无需编写SQL语句,包括创建或升级表,crud操作,聚合函数等.LitePal的设置也非常简单,您可以在不到5分钟中将其集成到项目中。

3.GreenDao
greenDAO是一款轻巧快捷的Android版ORM,可将对象映射到SQLite数据库。greenDAO针对Android进行了高度优化,性能卓越,占用内存极少。

4.DBFlow
一个功能强大,功能强大且非常简单的ORM android数据库库,带有注释处理功能。
该库建立在速度,性能和可接近性的基础之上。它不仅消除了大多数用于处理数据库的样板代码,而且还提供了一个强大而简单的API来管理交互。

5.Realm
Realm是一个直接在手机,平板电脑或可穿戴设备中运行的移动数据库。此存储库包含Realm的Java版本的源代码,该版本目前仅在Android上运行。


xutils3.0数据库模块详解

项目加载

1.添加依赖
在app的build.gradle下添加以下依赖:

1
compile 'org.xutils:xutils:3.5.0'

对于gradle3.0以上,compile已经被废弃了,需要使用api
如下:

1
api 'org.xutils:xutils:3.5.0'

阅读全文 »

Android常用之Butterknife使用详解

发表于 2019-03-27 | 分类于 Android | | 阅读次数:
字数统计: | 阅读时长 ≈

Butterknife简介

Butterknife中文又名黄油刀,是 JakeWharton大神开源的一款Android视图的字段和方法绑定快速注解框架.也是Android开发中比较常用的一款快速注解框架了,可以不用不断的重复findViewById,在各种场合下快速绑定view的多种事件,大大提高了开发的效率.

为什么开发用Butterknife?

1、强大的View绑定和Click事件处理功能,简化代码,提升开发效率
2、方便的处理Adapter里的ViewHolder绑定问题
3、运行时不会影响APP效率,使用配置方便
4、代码清晰,可读性强
5、…………

使用配置

在 Android studio 项目中配置:Butterknife:

一.在主Moduel中的build.gradle中添加如下配置:

1
2
3
4
5
dependencies {

implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}

简单使用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class ExampleActivity extends Activity {
@BindView(R.id.user) EditText username;
@BindView(R.id.pass) EditText password;

@BindString(R.string.login_error) String loginErrorMessage;

@OnClick(R.id.submit) void submit() {
// TODO call server...
}

@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.bind(this);
// TODO Use fields...
}
}

阅读全文 »

Android之Handler消息传递机制详解

发表于 2019-03-27 | 分类于 Android | | 阅读次数:
字数统计: | 阅读时长 ≈

前言

  • 在Android开发中,多线程应用是非常频繁的,其中Handler机制随处可见.
  • 下面就本人对Handle的一些理解与大家一起分享,共同回顾下Handle异步消息传递机制。

1.Handler是什么?

  • Handler是一套在 Android开发中 进行异步消息传递的机制。

2.Handler在Android中的作用

  • 在Android开发中多线程的应用中,将工作线程中需更新UI的操作信息 传递到 UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理。

3. 我们为什么要使用Handler去处理更新UI操作呢?

  • 在多个线程并发更新UI的同时 保证线程安全。

4.Handler异步消息传递所涉及的相关概念

  • MainThread (主线程)UI线程,程序启动时自动创建。
  • 工作线程,开发者自己开启的线程,执行耗时操作等。
  • Handler(处理者) UI线程与子线程通信的媒介,添加消息到消息队列(Message Queue)处理循环器分发过来的消息(Looper)。
  • Message (消息) Handler接受&处理的对象,存储需要操作的消息。
  • Message Queue(消息队列) 数据存储结构,采用先进先出方式,存储Handler发过来的消息。
  • Looper(循坏器)消息队列与处理者的媒介,从消息队列中循环取出消息并发送给Handler处理。

阅读全文 »

Android之Activity全面解析

发表于 2019-03-27 | 分类于 Android | | 阅读次数:
字数统计: | 阅读时长 ≈

前言

基于最近要准备去面试,特意系统的复习了下Android基础,看到Activity这块时,发现很多都忘了,而且之前也没有系统的学习和写笔记记录,所以,特此写下这篇关于Activity的一些理解,旨在帮助大家更好的理解Activity.

Activity是什么?

Activity是一个Android应用程序组件(也称为Android四大组件之一),它提供了一个屏幕,用户可以通过该屏幕进行交互以执行某些操作,例如拨打电话,拍照,发送电子邮件或查看地图。每个活动都有一个窗口,用于绘制其用户界面。窗口通常填满屏幕,但可能比屏幕小,并漂浮在其他窗口的顶部.

Android应用程序通常由多个彼此松散绑定的Activity组成。通常,应用程序中的一个Activity被指定为“主要”Activity,该Activity在首次启动应用程序时呈现给用户。然后,每个Activity可以启动另一个Activity以执行不同的操作。每次新Activity开始时,前一个Activity都会停止,但系统会将Activity保留在后台堆栈中(“后堆栈”)。当一个新的Activity开始时,它会被推到后面的堆栈上,并引起用户的注意。后栈遵循基本的“ 后进先出”堆栈机制,因此,当用户完成当前活动并按下”后退按钮”时,它从堆栈弹出(并销毁),之前的活动恢复。(后台堆栈将在后面为大家详细介绍。)

如何创建Activity

要创建Activity,您必须创建Activity(或其现有子类)的子类。在子类中,您需要实现当Activity在其生命周期的各个状态之间转换时系统调用的回调方法,例如在创建,停止,恢复或销毁活动时。两个最重要的回调方法是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class ExampleActivity extends AppCompatActivity {

@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
//您必须实现此方法。系统在创建Activity时调用此方法。在您的实施中,您应该初始化Activity的基本组成部分。最重要的是,您必须在此处调用以定义Activity用户界面的布局。
setContentView();
}


//系统将此方法称为用户离开您的Activity的第一个指示(尽管并不总是意味着Activity正在被销毁)。这通常是您应该提交应该在当前用户会话之外保留的任何更改的地方(因为用户可能不会回来)。

@Override
protected void onPause() {
super.onPause();
//在此处应该提交应该在当前用户会话之外保留的任何更改的地方
}

}
阅读全文 »

1024程序员节最新福利之2018最全大数据资料集合

发表于 2019-03-27 | 分类于 编程资料 | | 阅读次数:
字数统计: | 阅读时长 ≈

前言

有好久没有写博客了,主要这段时间都沉迷学习无法自拔了,哈哈.自吹一波.

前两天不是1024节吗,所以就有很多福利出现了,当然每个人能都获得的信息都有所不同,这就是所谓的信息差.秉着好东西需要分享和开源的好习惯,所以来给你们送福利了.

其他福利

一、1024程序员节最新福利之2018最全java资料集合

二、1024程序员节最新福利之2018最全H5前端资料集

三、1024程序员节最新福利之2018最全Android资料集合

Python核心基础

一、尚硅谷Python核心基础视频:

https://pan.baidu.com/s/1LVvNP5NPgE-IxyhW6KgDqA

密码:b2ma

二、Python核心语法实战:学生管理系统

https://pan.baidu.com/s/14tDNHX6rpsWUlQtFAGUq5w

三、Python作品之《雷电战机》

https://pan.baidu.com/s/1o7Ha6eA

大数据阶段

阅读全文 »

1024程序员节最新福利之2018最全Android资料集合

发表于 2019-03-27 | 分类于 编程资料 | | 阅读次数:
字数统计: | 阅读时长 ≈

前言

有好久没有写博客了,主要这段时间都沉迷学习无法自拔了,哈哈.自吹一波.

前两天不是1024节吗,所以就有很多福利出现了,当然每个人能都获得的信息都有所不同,这就是所谓的信息差.秉着好东西需要分享和开源的好习惯,所以来给你们送福利了.

其他福利

一、1024程序员节最新福利之2018最全java资料集合

二、1024程序员节最新福利之2018最全H5前端资料集

三、1024程序员节最新福利之2018最全大数据资料集合

Android核心技术

一、Android核心基础_15天精讲精练

https://pan.baidu.com/s/1b86u2E

二、Android自定义控件视频

https://pan.baidu.com/s/1hrOVZd6

三、Android—JNI视频

http://pan.baidu.com/s/1kVqBCmr

四、Android与H5互调

https://pan.baidu.com/s/1miHaDbM

五、Android常用第三方框架源码分析

http://pan.baidu.com/s/1o789Vjc

六、尚硅谷Android视频《多渠道打包》

http://pan.baidu.com/s/1dEVpQyX

Android项目实战

阅读全文 »

1024程序员节最新福利之2018最全java资料集合

发表于 2019-03-27 | 分类于 编程资料 | | 阅读次数:
字数统计: | 阅读时长 ≈

前言

有好久没有写博客了,主要这段时间都沉迷学习无法自拔了,哈哈.自吹一波.

前两天不是1024节吗,所以就有很多福利出现了,当然每个人能都获得的信息都有所不同,这就是所谓的信息差.秉着好东西需要分享和开源的好习惯,所以来给你们送福利了.

其他福利

一、1024程序员节最新福利之2018最全Android资料集合

二、1024程序员节最新福利之2018最全H5前端资料集

三、1024程序员节最新福利之2018最全大数据资料集合

Java基础阶段

一、20天横扫Java基础(课堂实录)

https://pan.baidu.com/s/1htTzZRQ

二、尚硅谷Java基础实战——Bank项目

http://pan.baidu.com/share/link?shareid=3690978764&uk=573533038

三、尚硅谷_ORACLE、SQL、PLSQL 视频教程

https://pan.baidu.com/s/1ghb9ENL

四、尚硅谷JDBC视频教程

https://pan.baidu.com/s/1c3XBTk8

五、Java8新特性

http://pan.baidu.com/s/1cgWOH4

六、Java——JUC

http://pan.baidu.com/s/1hsoh76k

阅读全文 »
1…345
darryrzhong

darryrzhong

人必有痴,而后有成

49 日志
8 分类
41 标签
RSS
GitHub Weibo Jianshu Juejin
© 2020 darryrzhong
访问人数 人 总访问量 次