自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (20)
  • 收藏
  • 关注

原创 插件化:资源加载

参考:http://blog.csdn.net/yulong0809/article/details/59489396插件化:加载资源 1、LoadedApk是一个apk在内存中的标示, Apk文件的相关信息,诸如Apk文件的代码和资源,甚至代码里面的Activity,Service等四大组件的信息我们都可以通过此对象获取; 2、LoadedApk 创建的时候会传入一个ApplicationIn

2017-04-08 15:12:38 369

原创 插件化:动态加载类

参考: 1、http://blog.csdn.net/yulong0809 2、http://weishu.me/主要涉及到基础知识:Binder机制、代理模式、dex类加载、app启动过程、反射hook等。动态加载类1、通过Dex:类加载过程得知:类是又classloader加载的,所有看一下classloader是怎么获取的; 2、在app启动过程中,classLoader 是通过r.pa

2017-04-08 15:08:15 369

原创 代理模式及具体实现

代理模式(其他的请看参考或者自行google) 1、作用:对其他对象提供一种代理以控制对该对象的访问;主要就是在执行真正的方法的前或后添加一些操作,如:对该方法的参数进行修改等。 2、动态代理类: java代理类位于Java.lang.reflect包下,一般主要涉及到如下两个类:Interface InvocationHandler, 该接口仅定义了一个方法 Object

2017-04-08 13:49:48 425

原创 App启动流程

本文主要介绍一个app是如何启动的。 源码:(源码只有一部分,其他的只要把类名google一下就出来了) https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/app如图:

2017-04-06 09:59:30 290

原创 dex: 类加载过程

dex:类加载过程 此文主要介绍如何加载一个类。 如图: 备注: 1、除了第一个dex,其他的dex都是以资源的形式加载;2、插件化实现,就是在application初始化前,要将dex文件注入到 系统的classloader中;3、android虚拟机的类加载机制是一个类只会被加载一次;4、类加载器:BaseDexClassloader有两个子类 PathCla

2017-04-05 17:07:24 579

原创 android 弹出软键盘相关坑的解决方法

android 软键盘弹出相关坑的解决方法,在全屏模式和非全屏模式下

2017-01-24 15:38:52 452 2

原创 android 动画系列:插值器-Interpolator

参考资料: http://www.lightskystreet.com/categories/Android/Android%E5%8A%A8%E7%94%BB/只为做个记录:代码下载 关键代码:import android.animation.TimeInterpolator;/** * Created by baiyuanwei on 16/12/29. * 动画过程1:0 -> 1;

2016-12-29 18:24:14 638

原创 Android 实现字体颜色渐变(滚动),包括表情:AnimatorSet、LinearGradient

动画效果:可以参考 https://github.com/facebook/shimmer-android思路: 为AnimatorSet添加一个AnimatorListener监听器,当动画结束时,立刻再次启动该动画。监听器:private static class InternalAnimatorSetListener implements Animator.AnimatorListener {

2016-09-06 16:41:24 2578

原创 Android annotations 框架

Gradle配置: Project: build.gradle 只需要在dependencies中加: classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’ 如: buildscript { repositories { jcen

2016-09-05 20:30:31 203

原创 Activity启动过程中获取控件宽高的方式

问题: 为什么在activity的生命周期中获取不到控件的宽高??解答: Activity的启动流程和Activity的布局文件加载绘制流程,其实没有相关的关系的,其实两个异步的加载流程,这样我们在Activity的onCreate和onResume方法调用textView.getHeight或者是textView.getWidth方法的时候,其组件并没有执行完绘制流程,因此此时获取到的组件的宽高都

2016-09-02 17:20:59 1334

原创 android 流布局 FlowLayout

功能一、自定义属性: 1、行数:max_lines_num , 默认无限制; 2、行间距:width_space,默认16dp; 3、列间距:height_space,默认8dp;

2016-09-01 18:05:16 415

原创 android 图片的高斯模糊实现

摘要:问题:我们利用RenderScript来实现图片的高斯模糊时,模糊度只能到25,所以有时候就不能满足我们的需求,模糊度不够。解决思路:我们可以利用图片放大也会导致图片模糊的原理,来提高我们图片的模糊度,如:我们先把图片缩小到原来的1/2,然后利用RenderScript做模糊处理,最后我们再把图片放大2倍,回到原来的大小,这样就可以达到我们想要的模糊度了,如果还不行,你可以把图片缩小到原来的1

2016-08-11 00:18:18 660

原创 android 单元测试中遇到的坑

问题: Robolectric.setupActivity(AddNewPhoneActivity.class);得到的对象居然是空的; 原因:@Config(constants = BuildConfig.class, sdk = 21)中的constants出现了问题,及BuildConfig.class没有匹配对;一般是一个项目中有多个module,在写单元测试时,BuildConfig.

2016-06-10 01:30:04 338

原创 android 倒计时

倒计时利用API中提供的CountDownTimer实现,只需要传入总时间、时间间隔、显示时间的控件view 即可; 使用方法:在需要的地方,调用CountDownTimer.start()方法即可。/** * * 倒计时 * */public class TimeCountDownUtil extends CountDownTimer { private Activity mA

2016-05-04 13:18:14 253

原创 android 有关毫秒转时间的方法,及时间间隔等

毫秒转时间 注意:”HH:mm:ss”是24小时制的,”hh:mm:ss”是12小时制。看代码:/** * Created by baiyuanwei on 16/5/3. * <p/> * "HH:mm:ss"是24小时制的,"hh:mm:ss"是12小时制。 */public class TimeUtil { /** * 从时间(毫秒)中提取出日期 *

2016-05-04 13:01:00 17826

转载 EventBus使用详解1、2两篇

EventBus使用详解(一)——初步使用EventBus: http://blog.csdn.net/harvic880925/article/details/40660137EventBus使用详解(二)——EventBus使用进阶: http://blog.csdn.net/harvic880925/article/details/40787203

2016-04-20 15:36:22 300

原创 Android 刻度表的实现

Android 自定义View: 刻度表 如图所示:橘黄色的刻度表是仿照下面暗灰色的刻度表做的参考资料:http://blog.csdn.net/ttdevs/article/details/38944799思路总结:详情请看参考资料 1、先完成onTouchEvent方法,然后再去完成onDraw方法 2、刻度表中滑动是通过改变绘制的参数,重绘刻度表形成的 3、scrol

2016-04-09 16:23:53 1857

原创 Android 拖放(OnDragListener)

参考资料:http://www.jcodecraeer.com/a/anzhuokaifa/developer/2013/0311/1003.htmldemo 下载,请点我

2016-04-04 21:01:54 792

原创 android: 带很多tab的指示器的ViewPager

参考资料:慕课网的课程-Android-自定义ViewPager指示器1、固定tab数量的带有指示器的viewPager,代码下载请点我2、动态加载tab的带有指示器的viewPager,代码下载请点我学习笔记:fragment传递参数首先在自己的TestFragment中定义一个创建fragment 的方法: public static TestFragment newInstance(Stri

2016-03-17 13:50:58 606

原创 Greendao 使用总结

关于GreenDao的配置:http://itangqi.me/2015/07/26/orm-greendao-summary/在上述配置中的第三步,生成DAO文件时,步骤如下:主菜单->Run -> Run… 然后就会弹出 选择ExampleDaoGenerator运行就ok了。注意:可以用“RE文件管理器“来查看数据库,测试是否创建成功。GreenDao 的基本使用方法1、如何创建表

2016-03-14 23:07:29 2062

原创 自定义View、ViewGroup及ViewPager的动画应用总结

下面提到的所有例子,我都在我的项目里实现好了,需要代码的,请点我。如下图所示: 代码所包含的内容: 1、有关圆的ImageView的实现方法,请点我;2、类似于ViewPager的自定义布局;3、同一方向(垂直)上有双层滚动,且解决了滑动冲突;4、流式布局;5、带动画切换的ViewPager,请点我;6、线条跟着页面切换而平移;

2016-03-09 15:05:29 324

转载 Android BitmapShader 实战 实现圆形、圆角图片

参考资料:http://blog.csdn.net/lmj623565791/article/details/41967509

2016-03-07 12:39:49 565

原创 简单总结RectF、Rect 和Matrix ,还有Paint的使用方法

1、Rect类和RectF类 参考资料:http://byandby.iteye.com/blog/826230 管方文档:Rect 类: http://developer.android.com/reference/android/graphics/Rect.html RectF类:http://developer.android.com/reference/android/graphi

2016-03-07 12:05:16 8006

原创 Android View 的弹性滑动: Scroller使用说明

我在实现View滑动的方法总结这篇博客中介绍了View滑动的三种方法,没看过的可以先去看一下。这篇文章主要讲解View的弹性滑动,即它滑动时会有一个过程,实现方法包括 Scroller、属性动画、使用延迟策略 这三个方法。实现弹性滑动的思想:将一次大的滑动分成若干次小的滑动,并在一个时间段内完成。具体方法讲解:利用Scroller 实现弹性滑动首先我门要明白getScrollX()、getScro

2016-03-06 18:54:35 2005

原创 Android 滑动冲突的解决方法

一、常见的滑动冲突场景场景1——外部滑动方向和内部滑动方向不一致,如:ViewPager中有多个fragment,而fragment中有ListView,这时ViewPager可以左右滑动,而ListView可以上下滑动,这就造成了滑动冲突。注意:这只是举个例子说明一下场景1,事实上ViewPager内部已经处理了这种滑动冲突,在采用ViewPager时,我们无需关注这个问题。场景2——外部滑动方向

2016-03-03 16:54:40 3640

原创 实现View滑动的方法总结

此博客主要介绍基本View滑动的实现方法,主要方法如下: 1、利用ScrollBy/ScrollTo方法实现; 2、利用动画的方法实现; 3、通过更改View的LayoutParams的属性值来实现。View滑动的重要性:掌握滑动的方法是实现绚丽的自定义控件的基础。一、利用ScrollTo/ScrollBy方法实现View的滑动首先我们要明白View内部的两个属性mScrollX、mScrol

2016-03-02 10:25:09 478

原创 Aandroid 事件分发机制(二):ViewGroup

参考资料:http://blog.csdn.net/guolin_blog/article/details/9153747官方ViewGroup的树状图: 由图可知,ViewGroup是继承View的,所以它就是一个View。ViewGroup就是一组View的集合,它包含很多子View和子ViewGroup,是android所有布局的父类或间接父类,如LinearLayout、Relativ

2016-02-26 18:14:31 522

原创 Android View的事件分发机制(一):View

参考资料:http://blog.csdn.net/guolin_blog/article/details/9097463官方View的树状图: View的子类:ImageView、TextView、Button …… 很多解析View的onClick和OnTouch的处理机制以一个可点击的控件为例:button 在Activity中给button注册一个点击事件: button.setOn

2016-02-26 13:20:19 314

原创 RecyclerView 使用总结(三):点击事件、GridView等、瀑布流、动态增删

一、RecyclerView的点击事件实现方法:在适配器Adapter中定义接口,接口中定义两个方法:一个点击事件、一个长按事件。然后在onBindViewHolder中调用,利用view.setOnClickListener()和view.setOnLongClickListener()方法实现。最后在Activity中给适配器设置监听接口的对象就ok了。代码如下,适配器: 监听接口 publi

2016-02-25 22:56:27 1759

原创 RecyclerView 使用总结(二):RecyclerView的下拉刷新、加载更多

一、实现带”下拉刷新”和”加载更多”的仿ListView的RecyclerView1、下拉刷新 方法:利用SwipeRefreshLayout来实现,将RecyclerView放在SwipeRefreshLayout中,然后调用SwipeRefreshLayout.setOnRefreshListener()方法就可以了。 布局: <android.support.v4.widge

2016-02-24 22:47:08 2131

原创 RecyclerView 使用方法总结(一):RecyclerView的基本用法,及实现ListView

参考资源:http://blog.csdn.net/developer_jiangqq/article/details/49992269?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io一、为什么叫RecyclerView?不关注item是否显示在正确位置,是否显示正确不关注item是如何分割的,即不关注分割线不关注item

2016-02-23 20:53:57 620

原创 常见Android OOM异常

*参考:***1、http://www.jianshu.com/p/c59c199ca9fa 2、http://my.oschina.net/jack1900/blog/293145

2015-12-10 15:00:18 524

原创 Volley 简单使用

git仓库:https://github.com/mcxiaoke/android-volley Volley简单使用

2015-12-06 16:22:15 343

原创 okhttp简单的应用

okhttp的git仓库:https://github.com/square/okhttp okhttp的使用方法:https://github.com/square/okhttp/wiki/Recipes(以下所有方法都是同步的,因为okhttp暂时没有提供异步的方法) 一、配置 android studio中,在app下的build.gradle文件中添加:compile ‘

2015-12-04 17:09:35 373

原创 android 加载图片oom异常

一、OOM异常是什么?产生OOM异常的原因        OOM(Out Of Memory--内存不够用了)        a、计算图片占用的内存大小:                  1、 占用内存 = 图片的长度 * 图片的宽度 * 单位像素占用的字节数;                  2、 单位像素占用的字节数是由BitmapF

2015-07-26 16:25:22 879

原创 FragmentStatePagerAdapter第二次加载时不能显示其界面的原因及解决办法

问题描述:一个ViewPager1中有多个Fragment1,在某个Fragment1中又有一个ViewPager2,这个ViewPager2中又有多个Fragment2,但是当再次加载这个Fragment1的时候,Fragment2的界面不会显示出来?问题原因分析:因为Fragment2不会调用onCreateView方法,及在Fragment1中的FragmentStatePage

2015-07-13 23:06:03 1575

插件化:动态加载类(无法加载资源)

android 插件化实现,动态加载类,无法加载资源

2017-04-08

android 软键盘弹出相关的坑之解决方法

在全屏、非全屏的情况下,弹出软键盘遇到的坑的解决方法

2017-01-24

android 插值器demo

android 插值器

2016-12-29

android 插值器应用

插值器的应用

2016-12-29

AnimatorSet 循环平移

AnimatorSet 循环平移

2016-09-06

android 流式布局

android 流式布局

2016-09-01

自定义view --刻度表

自定义view :刻度表的实现

2016-04-09

可拖动交换图片的网格布局

一个网格布局中有六张图片,这六张图片可以拖动交换图片

2016-04-04

动态加载tab的viewPager,且带有指示器

指示器 跟viewPager一起滑动 动态加载多个tab

2016-03-17

带有4个tab的ViewPager,且自定义指示器

带有指示器的viewPager

2016-03-17

GreenDao的使用方法

数据库开源框架GreenDao

2016-03-14

自定义的圆环ImageView、ViewPager的动画切换、流式布局

包含内容: 1 、自定义的带圆环的ImageView; 2、ViewPager的切换动画; 3、流式布局; 4.......

2016-03-08

android 解决View的滑动冲突:滑动方向不一致的滑动

View滑动冲突的解决方法,此代码主要解决了滑动方向不一致的滑动冲突

2016-03-03

View滑动的三种实现方法

此代码实现了View的滑动,利用三种方法,分别是 ScrollBy/ScrollTo、动画、LayoutParams来滑动的

2016-03-02

RecyclerView使用总结

RecyclerView的使用:自定义分割线、具有下拉刷新和加载更多ListView、横向ListView、GridView、横向GridView、瀑布流、RecyclerView中item的增加和移除的动画(注意:自定义分割线要在MainActivity.java文件中有个mRecyclerView.addItemDecoration()的方法,把这句代码上的注释去掉;下拉刷新和加载更多只适用于垂直方向的ListView,其他的暂时不适用)

2016-02-25

RecyclerView实现下拉刷新和加载更多

RecyclerView实现ListView,且具有下拉刷新、加载更多。存在的问题:当子View的总高度小于手机屏幕的高度,且子View+1的总高度大于手机屏幕的高度时,加载更多的布局就会出现显示问题,暂未解决

2016-02-24

RecyclerView 下拉刷新 加载更多

用RecyclerView完成ListView,并具有下拉刷新、加载更多。存在的问题:当手机屏幕剩下不足一个Item的空间时,加载更多的动画显示出现问题

2016-02-24

微博认证授权

android开发微博客户端,认真授权的代码

2014-09-14

android 新浪授权认证代码

新浪微博认证授权,还有人人网、腾讯qq等, oauth2.0认证授权问题

2014-09-01

空空如也

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

TA关注的人

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