自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一花一世界的博客

认真是一种态度,严谨是一种责任。

  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android WebView使用详解

前言现在越来越多的APP都内置了Web网页去加载视图,也就是我们常说的Hybrid APP混合应用,市场上很多平台都是这样做的,比如我们经常使用的淘宝、京东等电商平台。这些是如何实现的呢?在我们Android中有一个WebView组件,它就可以实现此类功能。它是Android中的原生UI控件,主要用于在APP应用中方便地访问远程网页或本地HTML资源,同时WebView也在Android中充当...

2018-07-02 15:59:44 1818

原创 自定义layer-list在图层布局中的使用

layer-list就是将多个图片或两种效果按照顺序层叠在一起显示,默认情况下所有item中定义的图层都会自动根据它附上View的大小而进行缩放,其中的item是按照顺序从下往上进行叠加的,即先定义的item在最下面,后面添加的item依次往上面叠放。先上显示效果图:如上图示你们会如何实现?第一种效果:使用文本View加分割线View来实现。 第二种效果:使用UI切图来实现。...

2018-06-29 11:19:59 2573

原创 自定义ScrollView最大内容显示高度

最近项目中遇到了这样一种显示效果,当ScrollView中显示内容量小的时候自适应高度不滚动,当ScrollView中显示内容量大的时候需要将其高度设置为屏幕高度的一半且可以滚动查看,由于ScrollView没有设置其最大高度的属性,所以就自定义了一个ScrollView来满足我们的显示要求。自定义一个View继承ScrollView并重写其onMeasure方法,在此方法中设置控件最大高度不...

2018-06-28 16:48:12 10903

原创 自定义TextView中动态设置图片大小

开发过程中,很多场景中都有用到文本和图片并列显示的情况,如下图示: 上图红色框中的布局你会怎么实现?1、在水平LinearLayout布局中放一个ImageView和一个TextView进行实现? 2、在TextView中设置其drawableLeft进行实现?以上两种方式在实现上是没有问题,但是都有其明显的缺点:第一种方式:实现过程中需要添加嵌套三个控件,对于一些复杂页面...

2018-06-28 09:40:21 1694

原创 Android Studio在线自动升级版本

开发过程中,有时候会报一些Android Studio版本低要求升级之类的异常错误或者开发者想要升级到最新版本体验新版本新增的特性,如果重新在网上下载最新版本来安装不仅浪费时间还很麻烦,因此我们可以通过下载增量更新包或者AS自带的Updates来在原有的版本上进行升级,这里我们先介绍第二种方式来进行升级也就是通过AS自带的Updates来进行在线升级。在打开的AS项目中选择File ->...

2018-06-26 10:46:15 12960

原创 Android性能优化之Android Device Monitor使用

什么是内存Android系统为我们APP分配的内存大小是有限的,不同的手机型号、不同的ROM分配的内存大小不一定一样,这里所提到的内存一般是指Android手机的RAM,RAM包含寄存器、堆、栈、静态存储区域、常量池。通常我们所说的Android内存泄漏中的内存指的是其中的堆内存空间,一般来说我们new出来的对象都会存储在堆内存中,这部分内存是由GC进行回收管理的。垃圾回收机制垃圾...

2018-04-06 15:48:24 7838

原创 Android多屏幕适配

简介由于Android系统的开放性,因此任何用户、开发者、OEM厂商、运营商都可以对它进行定制,修改成他们想要的样子。下面这张图是Android屏幕尺寸的示意图,在此图中蓝色矩形的大小代表不同尺寸,颜色深浅代表所占百分比的大小。从上图可以看出Android的屏幕尺寸特别多,为了让我们开发的应用程序能够比较美观的显示在不同尺寸、分辨率、像素密度的设备上,那就需要在开发过程中进行相应处...

2018-04-05 17:45:35 474

原创 Android Studio 3.0使用ButterKnife报错解决

在Android开发时,将Android Studio升级至3.0之后,使用ButterKnife 7.0.1版本时出现如下错误:Error:Execution failed for task ':xxx:javaPreCompileDebug'.> Annotation processors must be explicitly declared now. The following d

2018-02-02 15:27:41 705

原创 Activity与Fragment之间的数据交互方式

Activity向Fragment传递数据第一种方式: 1.1 可在需要传递的Fragment中定义一个getInstance(传递的数据参数)方法来传递数据,同时可在onCreateView方法中获取传递过来的值。static MyFragment getInstance(String str) { MyFragment mFragment = new MyFragment

2018-02-01 17:48:41 371

原创 ButterKnife注解使用

简介在开发过程中,我们总是会写大量的findViewById和setOnClickListener来进行初始化和监听,这样简单而重复的操作会让人觉得特别麻烦,因此自然就出现了相应的解决方案–依赖注入。而ButterKnife则是依赖注入中相对简单易懂且很不错的开源框架,被广泛应用于Android开发当中。帮助安卓开发者省去了大量初始化控件的重复性工作,简单快捷地就可以初始化布局文件中的控件,极大地提

2017-09-14 09:54:41 713 1

原创 Android动画之animation-list实现逐帧动画

简介帧动画(Frame Animation又称Drawable Animation)是最简单的Android动画效果,其与电影多重连续帧播放原理相似,通过视觉残留来让人感知到动画效果。其实现方式是将一张张Drawable图片按顺序排列并逐张按时播放来达到实现的动画效果,对应的实现类是AnimationDrawable。它有两种实现方式:代码实现和XML实现,其中XML实现方式较为简单。

2017-09-12 10:29:23 4591

原创 Service+WebSocket实现实时定位

背景最近遇到了这样一个需求:实现一个实时定位功能,并将定位到的信息上传至服务器。思路首先实现一个长生命周期的Service服务; 其次通过BroadcastReceiver监听系统广播,当Service被杀死的时候重新启动服务; 然后采用百度地图进行定时定位; 最后使用SharedPreferences将定位信息过滤后通过WebSocket上传至服务器。实现Service服务public cl

2017-09-07 15:42:13 6383 2

原创 Android之shape的使用

背景在Android开发中,使用shape标签可以很方便的帮助我们自定义绘制简单的形状,一般可用于绘制控件的背景,如按钮或文本框背景,也经常用于设置布局的背景,其用法不难但是功能作用却很强大。相对于png图片来说,使用shape可以减少安装包的大小,而且能够更好的适配不同的手机。XML定义<?xml version="1.0" encoding="utf-8"?><shape xmlns:andr

2017-08-30 15:52:44 369

原创 泛型解析JSON数据封装

背景以下面服务器返回数据格式为例:{ "code":200, "msg":"成功", "data":{ "userName":"小明", "nickName":"一花一世界" }}在这个返回的JSON数据里面code和msg的类型是固定不变的,但是data的类型却会经常改变。比如这里返回的是User格式的数据,另一个接口返回的可能就是

2017-08-24 16:45:20 3775

原创 Android设计模式之MVVM

简介在开发中可能你使用过MVP设计模式来对代码进行解耦,但是谷歌发布的DataBinding库更加简化了我们的代码,同时也催生了MVVM设计模式在Android中的使用。在MVP模式中我们需要Model、View、Presenter三者进行配合使用,而MVVM模式是由Model、View、ViewModel进行配合的,其中的区别主要在于ViewModel。DataBinding是一个实现数据和

2017-08-24 11:06:27 1149

原创 Android设计模式之单例模式

简介单例模式是设计模式中最常见也最为简单的一种设计模式,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例的访问方法。通过单例模式可以保证系统中一个类只有一个实例,我们经常使用的图片加载框架Universal-Image-Loader的实例创建就是使用了单例模式,因为Universal-Image-Loader中包含有线程池、缓存系统、网络请求等配置很消耗资源,不应该创建多个对象

2017-08-07 16:16:18 248

原创 Android之ViewPager+Fragment实现懒加载

简介在开发的过程中,我们可能会遇到一个Activity中ViewPager与多个Fragment组合使用的情况。ViewPager有一个“预加载”机制,默认会把ViewPager当前位置的左右相邻页面预先初始化(俗称预加载),它的默认值是1,这样做的好处就是ViewPager左右滑动会更加流畅。但是当有多个Fragment且每个Fragment都需要加载数据时可能就会导致页面卡顿,影响用户体验效果。

2017-07-31 17:14:19 1509 1

原创 Android之ViewPager跳转时滑动效果交互问题

问题背景在使用ViewPager的过程中,有需要直接跳转到某一个页面的情况,这个时候需要使用ViewPager的setCurrentItem方法,它的作用是跳转到ViewPager的指定页面。但是在使用这个方法的时候有这样一个问题,页面在跳转的时候有滑动效果,当需要从当前页面跳转到其它页面时,如果跳转的页面跨度过大或者ViewPager的每个页面视觉效果相差较大时,通过这种方式实现ViewPager

2017-07-28 16:00:37 929

原创 Android中mipmap和drawable文件夹的区别

Google官方关于mipmap和drawable的介绍 drawable/ For bitmap files (PNG, JPEG, or GIF), 9-Patch image files, and XML files that describe Drawable shapes or Drawable objects that contain multiple states (no

2017-07-27 14:35:26 959

原创 Retrofit2.0使用详解

简介Retrofit是由Square公司提供的开源产品,为Android平台的应用提供一个类型安全的REST客户端。其实质上是对OkHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底层,将REST API返回的数据转化为Java对象方便操作,可以进行GET、POST、PUT、DELETE等请求,极大的提高了应用的网络体验。官方文档(英文)RE

2017-07-21 15:21:11 1026

原创 可拖拽式层叠卡片效果

简介现在很多社交交友类的APP首页都会有一个类似于卡片式切换的交互页,提高和用户的互动性。下面我们也做一个类似于这样的效果,它实现了用户的左右滑动和点击交互监听功能,同时也可设置其剩下多少内容时加载更多,简单的代码实现炫酷的操作,定会为你的应用增色不少。使用1、Layout布局com.wiggins.cardcontainer.widget.CardContainerView

2017-06-30 11:02:55 1662

原创 Map集合按Key和Value分别排序

简介Map是键值对的集合接口,根据键得到值,因此不允许键重复,但允许值重复。它的实现类主要包括:HashMap、TreeMap、Hashtable以及LinkedHashMap等。TreeMap是基于红黑树(Red-Black tree)的NavigableMap实现,该映射根据其键的自然顺序进行排序或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法,默认是按键

2017-06-23 14:56:07 7500 1

原创 自定义圆形、圆角矩形View

简介日常开发中经常要用到圆角矩形或者圆形来显示头像或图片,因此对于它的使用方式我们还是比较关注的。下面我们就自定义一个View来进行圆角矩形或圆形图片的展示,同时也支持自定义设置边框大小、边框颜色、按下状态蒙层颜色等属性。使用1、在attrs.xml中自定义属性declare-styleable name="RoundImageView"> attr name

2017-06-19 16:21:59 461

原创 EditText禁止输入空格、换行符或特殊字符

简介开发过程中因为有些功能的特殊需要,有时候需要我们限制EditText输入框的输入字符类型,如空格、换行符或者特殊字符等。此时我们可以使用系统提供的输入过滤器InputFilter来进行输入限制。使用1、禁止EditText输入空格和换行符/** * 禁止EditText输入空格和换行符 * * @param editText EditText输入框 */public

2017-06-14 14:05:47 10248 6

原创 自定义邮票锯齿背景效果

简介最近项目中有一个需求,需要做一个类似于邮票那样的背景效果,它主要是由半圆锯齿和虚线边框结合而成。效果图:我用到的效果是上面图中的第一种,四周边缘是半圆锯齿,内部是虚线边框。当然,具体效果可以根据自定义属性自己定制。使用1、在attr.xml中定义属性<declare-styleable name="StampView"> <!-- 半圆之间间距 --> <attr name="s

2017-06-13 15:35:20 750

原创 无线调试Android应用(App)

背景在Android开发应用过程中,通常情况下是通过USB数据线连接设备与计算机来进行调试。但有时候可能会遇到数据线连接不上设备或频繁断开的情况,因为设备的USB进行频繁插拔之后会导致一定的损坏。那么在设备无法利用数据线进行稳定连接开发工具进行开发的时候该杂么办呢?此时可以通过网络TCPIP的方式来进行操作,也就是ADB通过网络来连接设备而无需USB数据线。使用1、通过USB数据线连接

2017-06-05 10:02:25 474

原创 第三方登录分享

微博新浪微博Android SDK为开发者提供了Oauth 2.0授权认证,并集成SSO登录功能,使第三方应用无需了解复杂的验证机制即可进行授权登录操作,同时也提供了微博分享功能,第三方应用可直接通过微博客户端进行分享操作。集成准备申请APP_KEY第三方应用如果需要接入微博SDK就必须在微博开放平台上对应用进行注册,并获取APP_KEY,同时添加应用的授权回调页REDIRECT_URL。注册

2017-06-01 15:27:17 3519 1

原创 如何制作开源依赖库上传至GitHub供他人使用

背景在项目开发中经常会使用别人的第三方依赖库,在之前的Eclipse时代,基本都是通过拷贝jar包引入到工程中去使用。现如今大部分 Android开发者都开始使用Android Studio工具进行开发,只需要在项目下的build.gradle文件中添加依赖,就可以完成第三方依赖库的引用。大多数情况都是使用别人的依赖库,那么我们为什么就不能考虑自己也写个依赖库让别人使用呢?在此前,我们需要

2017-05-25 15:23:37 1159

原创 自定义ScrollView实现放大回弹效果

背景在很多项目中我们都会用到ScrollView这个控件,因为ScrollView能够在屏幕内容多时下上滑动以适配加载的内容。但是ScrollView滑动时效果感觉太死板了,这个时候我们如果给它添加一个回弹的动画效果,会让界面交互更加舒服,提升用户体验效果。 效果图自定义ScrollView1、创建一个类,继承ScrollView并重写相应的构造函数public class

2017-05-24 14:55:17 774

原创 AAR文件在Android开发中的集成

AAR是Google为Android Studio专门推出的一种库文件格式,Eclipse没办法像使用jar那样直接使用AAR文件,但是我们可以使用AAR里面的文件快速创建一个Eclipse Library项目,然后在我们的项目中引用即可。AAR在Eclipse中的使用:第一步:将AAR文件后缀名改为ZIP并解压; 第二步:在解压得到的目录里面创建一个libs文件夹,然后将classes

2017-05-22 09:44:17 1191

原创 Android Studio项目提交GitHub时的出错处理

在使用Android Studio提交项目至GitHub时出现以下错误:提示我们不能连接到远程仓库,需要检查配置文件。然后我选择的是Yes,提交完成后提示我在GitHub上成功创建了项目,但初始提交失败,还有一大堆错误提示。大致意思是用户名和邮箱和GitHub上的用户名与邮箱不对应,需要我设置账户身份。但是登录GitHub账户后,发现这个工程创建成功了,但却是个空壳没有内容。于是想着将GitHub上

2017-05-19 15:54:54 1324

原创 图片加载之Picasso使用

简介Picasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能。主要有以下一些特性:在Adapter中回收和取消已经不在视野范围图片资源的加载,防止可能出现的图片错位;使用复杂的图片压缩转换来尽可能的减少内存消耗;使用最少的内存完成复杂的图形转换操作;自带内存和硬盘缓存;可加载网络或本地资源。GitHub地址: https:

2017-05-18 11:32:54 9434

原创 自定义圆形进度条

背景开发过程当中,当我们进行上传、下载或者更新等项目需求时,往往需要给用户展示一个进度值用于显示当前的更新状态,便于用户进行操作处理。当原生的控件满足不了展示需要时,就要我们自己定制所需要的展示效果,值此情景时各种各样的自定义进度展示控件便应用而生。以下简单介绍几种常见的显示样式,实现的方式大同小异,大家可以根据自己的需求简单修改配置即可。效果图: 常见的使用样式Progress

2017-05-12 11:05:00 362

原创 ViewFlipper(翻转视图)使用详解

简介ViewFlipper是Android自带的一个多页面管理控件且可以自动播放!它和ViewPager有所不同,ViewPager继承自ViewGroup,是一页一页的,可以带动画效果,可以兼容低版本;而ViewFlipper继承ViewAnimator,是一层一层的,切换View的时候可以设置动画效果,是Android 4.0才引入的新控件。使用场景和ViewPager基本一样,在很多时候

2017-05-10 10:01:10 3111

原创 TextView多文本折叠/展开效果

背景在开发过程中,当我们的需求中包含说说或者评论等内容的展示时,我们都会考虑当内容太多时该如何显示。当内容的字数太多,如果全部展示出来可能会影响体验效果,但是又不能只截取一部分内容进行展示,此时就需要考虑使用多行显示折叠的效果来实现。效果图: 使用实现一:1.在attr.xml中定义属性declare-styleable name="MoreTextStyle

2017-05-04 14:29:38 1675 1

原创 自定义数字滚动动画的TextView

背景在开发需求当中,当有总收益、总用户数等数字要显示时,为了更好的给用户提供展示效果,往往会想加入炫酷的数字滚动动画,使呆板平静的数字变得灵活起来,给人一种增值的直观感受。简介NumberRollingView是一个自定义的自带数字滚动动画的TextView,通过使用setContent(String str)方法进行数字字符串设置,传入相应的金额数字字符串(如"9686.86")

2017-04-28 09:39:51 2967

原创 Logger日志框架使用详解

引言编程开发过程中,打印日志信息从编程开始就有了,它与单步调试并称程序调试的两大神技。现在调试工具越来越好用,单步调试没有任何困难,但是打印日志仍然是不可或缺的必杀技,它为我们的编程开发提供了很大的帮助。简介GitHub地址:https://github.com/orhanobut/loggerLogger提供以下功能:线程的信息类的信息方法的信息可打印JSON内容可

2017-04-25 15:36:13 7002

原创 使用GSON和泛型解析约定格式的JSON字符串

引言在开发过程中,我们现在绝大部分都是使用JSON格式进行数据交互,但是各个接口返回的数据内容不同,如果每个接口都进行GSON解析代码会显得比较臃肿。背景我们先来看一下JSON的几种基本格式:# 第一种{"status":0,"message":"成功","data":{"age":"15","sex":"女"}}# 第二种{"status":0,"message":"成

2017-04-24 10:20:17 651

原创 OkHttp3使用详解

引言最初我们进行HTTP请求时使用的是HttpURLConnection或者HttpClient,那么这两者都有什么优缺点呢?HttpClient是Apache基金会的一个开源网络库,功能十分强大,API数量众多,但正是由于庞大的API数量使得我们很难在不破坏兼容性的情况下对它进行升级和扩展,所以Android团队在提升和优化HttpClient方面的工作态度并不积极。HttpURLC

2017-04-20 16:11:23 23766 5

原创 EditText实现分割输入内容

在项目中可能会有许多需要输入手机号码、银行卡号或者身份证号等内容的输入框。如果直接输入的话将会是一堆号码堆在一起,第一是不太美观,第二也容易出错,用户体验不太好。但是若将输入的号码按特定格式进行分割将会大大提高用户体验!以下是对常用的号码进行简单封装的自定义输入框控件,方便我们在开发过程中使用:该控件支持xml属性指定,也支持代码指定;该控件支持类型分别为电话号码(000 0000 0

2017-04-17 17:17:15 1160

上下拉菜单的刷新

上下拉菜单的刷新 可以实现对内容的实时更新 达到了很好的可视化效果

2014-07-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除