- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 Android自定义View-九宫格抽奖转盘(两种实现)
好久没写文章了,一来感觉自己技术没啥进步,二来各种杂事繁忙,以至于拖了许久。正好这个版本产品需求需要做一个九宫格样式的转盘抽奖机,感觉是个挺有意思的东西,把我的解决方案和中间遇到的问题发出来,供大家参考哈~两种方案,先看成品的效果开始做这个功能的时候,跟产品确定效果,要求动画是先慢后快再变慢,我第一时间想到的就是插值器。AccelerateDecelerateInterpolator就是属于开始和结束很慢,中间速度较快的那种插值器,完美符合需求。接下来需要考虑怎么来实现九宫格。第一种实现我第一版
2021-02-22 17:54:42
2525
原创 Java基础--泛型
14年做开发,至今已有近4年了。越来越多地在进行需求开发,对于之前的一些概念性的东西或者说少用到的东西渐渐的有些遗忘了。打算从本篇开始把一些基础性的东西一点一点拾起来,工程量可能会很大,包括数据结构、基础算法、java基础等等的知识。一点点的进步日积月累也会有巨大的收获,好了,就从现在开始吧。泛型是什么?Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数之实...
2018-06-12 19:40:16
332
原创 Android轮播图-自定义无限滚动的广告Banner控件
今天闲来无事,梳理一下关于Android中广告banner图的一些技巧。一般来说,我们的广告Banner要满足这样几个条件:Banner单个Item无限循环自动滚动响应单独item点击事件触摸禁止滑动指示条画廊效果ok,下面我们就针对这几点一一来进行分析Banner单个Item无限循环首先我们要实现一个自动滚动和手动均可滚动的Banner,很显然,我们需要使用...
2018-06-07 23:09:10
2450
1
原创 我经历的一些Android面试题及答案
最近在考虑换工作,连续面试了几家公司,这里整理一些比较有意思的面试题(普通面试题和算法题,本人算法基础比较薄,算法题不是强项)。面试题Java中static静态代码块的调用时机。Java中的静态变量和静态代码块是在类加载的时候就执行的,实例化对象时,先声明并实例化变量再执行构造函数。如果子类继承父类,则先执行父类的静态变量和静态代码块,再执行子类的静态变量和静态代码块。同样,接着在执...
2018-05-29 21:56:07
325
原创 Android列表拖拽排序及禁止拖拽以及保存排序状态
今天来研究一下Android中拖拽排序的相关技术。我们知道,RecyclerView是一个十分强大的类,它可以实现ListView的所有功能,并且更易用。关于它的好处不必多说,懂的都懂。我们基于RecyclerView来完成一个可拖拽排序的列表,并且在拖拽之后保存列表状态,这一功能在开发需求中应该使用到的还是蛮多的。准备开始这个功能之前,肯定是要先完成一部分知识储备。好了,开始学习~...
2018-05-25 16:47:59
4690
2
原创 常用的Android Studio插件
今天来介绍几款Android Studio常用的插件。ButterKnifeZeleny如果你的代码中使用了ButterKnife,那么你一定不能错过ButterKnifeZeleny这款插件。这款插件的作用是帮助开发者快速生成诸如@BindView、@onClick等代码,减少重复劳动。要使用该插件,打开Android Studio的plugins,在搜索框中搜索并安装即可,安装...
2018-05-23 11:56:46
485
原创 Android沉浸式状态栏、颜色渐变、副标题动画和TabLayout悬浮条
嘛,几天没学习,我浑身难受。今天把前段时间公司这边的几个需求放在一起总结了一下,有这样几个:沉浸式状态栏(5.0以上),并要求上部bar随着RecyclerView滑动变色RecyclerView悬浮条,与普通悬浮条不同的是悬浮条是一个可滑动的TabLayout副标题随着RecyclerView滑动动画上移或者动画下移把这几个东西放一起来重新梳理一下吧,先上效果图:左边...
2018-05-16 09:52:04
1598
原创 Android自定义View-仿滴滴自定义验证码输入框
之前公司有过需求,要求做一个类似滴滴打车输入验证码的页面,长这样:emmmmmm,好像截了iOS的图,不要在意这些细节。来分析一下这个验证码部分,实现这样一个自定义View,首先,要区分单个验证码选中状态和未选中状态,并且光标悬停在选中的验证码中心,其次, 每次输入文字后需要依次显示在每个单独的验证码容器中,还有诸如自定义验证码选中状态、清空输入验证码等等。受到博文Android 自定...
2018-05-09 23:05:54
4904
1
原创 Android原生与JavaScript交互详解
这几天公司项目里提到了原生与HTML交互的需求,之前一直用的前人封装好的工具类。今天打算好好梳理下Android中原生与网页交互的方法和注意事项。谈到Android与HTML交互,其本质还是WebView与JavaScript的交互过程。这就分为两种情况:WebView或者说App调用JS方法JS调用APP的原生方法我们就从这两大方面逐步讲解这两种情况的实现。App调用JS方...
2018-05-08 16:40:38
4823
原创 Android View相关-事件分发机制流程
经过前两篇的学习,相信已经对事件分发的一个流程产生了一定的理解(才怪),那么这一章我们来看看整个事件分发从Activity到被消费的过程。好了,脑袋放空,我们开始。Activity中的View结构我们在这里先插一嘴Activity中的View结构。在开发过程中,我们通常使用setContentView来设置Activity的视图,Android中可见页面都是附着于窗口也就是Window...
2018-05-07 09:18:40
223
原创 Android View相关-事件分发机制详解-ViewGroup
上一篇文章中,我们从一个小例子和源码角度解析了View的事件分发过程,我们知道其执行流程是dispathcEvent -> onTouch -> onTouchEvent,在onTouchEvent中会经过判断处理OnClick事件和OnLongClick事件。那么本文我们来探讨下View的子类ViewGroup的事件分发流程。举个栗子这里使用一个自定义LinearLayout...
2018-05-07 09:16:51
223
原创 Android View相关-事件分发机制详解-View
这篇文章我们来探究下Android中关于事件分发机制的一些细节和流程,由于这部分源码比较繁杂,拆开来讲,本文只探究View的事件分发流程,ViewGroup留到之后再说,在分析完这两者的事件分发机制之后我们来对Android的时间分发机制进行总结。那么本文就从View的子类Button来着手分析事件分发的流程,之后我们再从源码角度分析具体实现过程。举个栗子这里用一个很简单的小例子来演示Vi...
2018-05-02 10:37:19
585
原创 Android View相关-View的常用方法及使用区别
经过上一章的摸索,我们已经了解了Android中View的绘制流程分别是measure、layout和draw,那么对Android有一些了解的话,一定知道View中有这样几个方法invalidate、postInvalidate以及requestLayout,我们知道这些方法调用后会触发View的重绘(不一定正确的说法),那么它们的用法是什么,有什么区别以及使用时候有哪些注意事项,这就是我们这一...
2018-04-27 09:28:09
1788
原创 Android View相关-View的绘制流程浅析
从本章节开始,我们来共同学习下Android中比较重要的View相关知识,这一节我们先来看View的绘制流程。我们知道,Android中的任何一个布局、控件,其最终都会直接或者间接地继承View类(ViewGroup最终也继承了View),也就是说所有相关的控件或者布局都会使用同样的绘制流程。我们知道Android绘制流程的起点是在ViewRootImpl类的performTraversals...
2018-04-26 10:43:18
274
2
原创 Android多线程-IntentService的使用以及原理浅析
上一章我们学习了HandlerThread,这一章我们来认识一下Android多线程通信常用的最后一个类IntentService。顾名思义,IntentService是一个Service的子类,其本质还是一个服务,不过它与它的父类还是有一些区别的,下面我们就来详细讲一下。IntentService与Service的区别IntentService是Service的子类,同样需要在An...
2018-04-25 09:46:35
493
原创 Android多线程-HandlerThread的简单使用与剖析
前面我们讲到,Android中子线程与主线程通信我们主要用到Handler,在一些轻量级的需求上,可以使用AsyncTask。但是使用Handler有没有简单的方法实现主线程与子线程的通信呢。Android已经为我们内置了这么一个类HandlerThread,顾名思义,这是一个线程类,可以让我们更方便地实现线程间通信,那么,下面我们就通过一个简单的例子来了解一下这个类的使用方法。简单使用...
2018-04-24 12:01:42
945
原创 Android多线程-AsyncTask简单使用
通过前几篇文章的学习,我们已经对Android多线程通信有了一定的了解。那么这篇文章我们来讲讲Android系统为我们内置的异步任务类AsyncTask。运用AsyncTask可以让我们只关注于子线程中的耗时操作和更新UI的操作,使用起来会比Handler要简单一些,当然,只是针对一些简单操作,比如网络操作,图片加载,数据获取等等。简单介绍首先AsyncTask是一个抽象类,一般我们使...
2018-04-23 16:40:54
275
原创 Android多线程-Handler原理简单剖析
上一章的学习我们已经了解了Handler进行线程间通信的使用流程,我们知道,有几个比较重要的概念需要我们重点去了解,它们分别是: 概念 定义 作用 主线程(UI Thread) 应用程序启动时,默认开启UI线程 处理UI相关操作 子线程(Worker Thread) 人为控制开启的线程 处理耗时操作(网络请求、数据加载等) 消息(Mes...
2018-04-23 16:37:18
214
原创 Android多线程-Handler的简单使用
下面我们就来讲解Handler的简单使用,我们实现一个模拟下载过程的操作,并将下载进度更新到进度条和TextView中,那么事不宜迟,我们马上开始。我们先来总结下使用Handler的步骤:创建Hanlder对象,并在handleMessage方法中完成逻辑代码创建子线程,在子线程中创建Message对象,使用handler.post方法将消息发送给消息队列(MessageQueue)...
2018-04-22 12:58:57
649
原创 Android多线程-多线程初步,进程线程详解
从这一部分我们开始学习Android的多线程,在这之前要搞清楚两个概念,进程和线程。Android启动一个应用程序时,若该应用程序无其他组件运行,那么系统会为这个应用程序启动一个新的linux进程,并在这个进程中默认启动一个UI线程(主线程)。默认情况下,同一应用程序的所有组件都在同一进程的主线程中运行。如果应用程序组件启动,并且已经存在该应用程序的进程(因为应用程序中的其它组件已经启动),则...
2018-04-22 12:57:10
234
原创 Android动画学习之属性动画(Property Animator)-2、属性动画执行流程
经过上一章的学习,我们已经学会了属性动画的基本使用,这一章里我们就来讲一讲属性动画的底层实现,简单讲一下什么是TimeInterpolator,什么是TypeEvaluator,以及它们是如何产生作用来呈现我们所看到的动画的。Animator执行流程我们从一个简单的例子来演示动画过程中的执行过程:@Overrideprotected void onCreate(@Nullab...
2018-04-19 09:41:45
252
原创 Android动画学习之属性动画(Property Animator)-1、基础用法
经过前两章的学习,终于到了我们使用最多的属性动画了。属性动画是Android3.0(API 11)中引入的新的动画机制,相较于补间动画,它除了可以实现补间动画的所有效果外,还能实现补间动画无法做到的效果,比如我们现在要求一张图片背景色渐变,补间动画就无法完成,而使用属性动画就可以很简单的实现这个效果。另外补间动画只能作用在View上,而不能作用于非View的对象上,比如我们自定义一个View,此V...
2018-04-17 11:45:47
713
原创 Android动画学习之Frame Animation
上一节我们讲了补间动画,接下来我们来学习逐帧动画。Android中的逐帧动画是将一系列静止的画面按一定的顺序和速度进行播放从而产生的动画效果,当然静止的画面指的就是帧了,反映在我们的代码中就是一张张图片。ps:这里插一个小概念,我们玩游戏或者看电影时经常会讲到的一个词,帧数,其实指的就是1秒内播放的帧数量,用fps来表示画面传输率,一般电影播放为24帧,也就是一秒播放24个画面,游戏有30帧到...
2018-04-16 09:15:43
142
原创 利用webHook实现hexo自动更新
上篇文章中我们提到了利用github webhook来实现hexo博客的自动更新,现在我们就来实现这个功能。(ps:安装了宝塔面板的用户可以很方便的实现此功能,以下的所有实现基于你的VPS上安装了宝塔面板)安装宝塔WebHook登录你的宝塔面板,选中软件管理,在第二页找到宝塔WebHook 1.0,点击安装,过程大概需要几分钟,取决于你的VPS配置,耐心等待安装完毕。配置宝塔WebHo...
2018-04-12 16:46:28
1388
原创 Android动画学习之Tween Animation
这篇文章里,我们来学习一下Tween Animation(补间动画)的使用。补间动画虽然是Android中较古老的一种动画系统,不过对于一般的需求已经足够使用了,因此熟练掌握它是很有必要的。Tween Animation主要有以下四种:Alpha:透明度渐变效果Rotate:旋转效果Translate:位移效果Scale:缩放效果Tween Animation可以使用xml或者代...
2018-04-11 10:01:19
199
原创 Android动画学习之概论
Android动画-初识 在Android开发过程中,动画(Animation)占到了极大地比重。动画效果的加入可以使我们的应用程序更友好,更美观。我们知道Android应用程序可以实现及其精致和复杂的动画效果,那么这些动画效果是如何做出来的呢?在Android FrameWork提供了大量的API来支持实现复杂多变的动画效果,若对Android中的动画进行分类,大体可以分为View A...
2018-04-11 09:59:18
113
原创 Android Studio与Genymotion模拟器结合使用的一些心得
关于Android Studio与Genymotion模拟器结合使用的一些心得本文章针对我自己在配置Genymotion模拟器时遇到的问题进行一个汇总:模拟器无法启动Android Studio关联Genymotion可以启动模拟器但无法安装应用拖拽加载Genymotion-ARM-Translation.zip失败关于Genymotion的下载和安装不多说,我是直接在官网下载了带有Vir
2016-04-11 18:30:10
3214
原创 PullToRefresh嵌套GridView实现悬浮以及上拉刷新
使用PullToRefreshlistView嵌套GridView并且实现悬浮功能,总的来说是由以下几个要点需要去注意:导入PullToRefresh开源库为listview设置Adapter为listview设置刷新方法为gridview设置Adapter导入PullToRefresh开源库一、导入Library 下载源码后(https://github.com/chrisbanes/
2015-05-26 19:35:35
1868
转载 (备忘)Android Studio快捷键
Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl+E或者Alt+Shift+C 最近更改的代码 Ctrl+R 替换文本 Ctrl+F 查找文本 Ctrl+Shift+Space 自动补
2015-05-06 09:33:41
368
原创 如何在Android Studio上集成SMSSDK
如何在Android Studio上集成SMSSDK前段时间公司开发项目需要用到短信验证功能,选中了Mob平台的SMSSDK,不过当我按部就班开始往我的项目里集成的时候发现一个很严重的问题,官网上给出的教程中只有集成Eclipse并没有我所使用的Android Studio。当然,自己动手开始尝试往Android Studio中集成,最后成功,下面是我的方法。首先你需要Eclipse和Android
2015-03-17 13:44:42
4606
5
Genymotion-ARM-Translation.zip
2016-04-11
PullToRefresh嵌套GridView实现上拉刷新以及悬浮条功能
2015-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人