自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 android中对观察者模式的使用,Adapter中的观察者

java原型: 其中adapter 中用到的观察者模式

2017-06-20 17:41:13 273

原创 设计模式:观察者模式

观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个对象。这个主题对象在状态发生时,会通知所有观察者对象,使它们能够自动更新自己具体操作

2017-06-20 14:21:32 173

原创 设计模式:适配器模式

适配器模式:将一个类的接口转换成客户端希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能工作的那些类可以一起工作。 目标接口:客户端所期待的接口,目标是举起或者抽象的类,也可以是接口 适配器:通过内部包装一个Adaptee对象,把原接口转换成目标接口 需要适配的对象:需要适配的类具体例子:

2017-06-18 21:35:01 177

原创 设计模式:简单工厂

简单工厂模式:又叫静态工厂方法模式,是通过专门定义一个类来负责他的实例,被创建的实例通常都具有共同的父类。 UML模型: 职责: 工厂角色(Creator):负责创建所有类的内部逻辑,工厂类必须能够被外界调用,创建所需要的产品对象 抽象产品:简单工厂模式所创建的父类,这里的父类可以是接口也可以是抽象类,它负描述所所有实例所共有的公共接口。 具体产品角色:简单工厂

2017-06-15 14:54:11 174

原创 设计模式:建造者模式

建站者模式(Builder):将一个复杂的对象与它的表示分离,使得同样的构建过程可以创建不同的表示。 模型: 主要用于复杂的对象,这些对象内部的构建顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

2017-06-14 22:11:08 151

原创 学习笔记:View动画

安卓三种动画:View动画、帧动画、属性动画。 View动画的种类:TranslateAnimation、ScaleAnimation、RotateAnimation、AlphaAnimation四种 AnimationSet表示若干个动画的集合 Xml表示法 1、路径:res/anim/filename.xml 2、表示法: 3、元素解

2017-06-06 14:23:29 169

原创 Retrofit的使用

retrofit是对okhttp做了一层封装。 导包: compile 'com.squareup.retrofit2:retrofit:+' compile 'com.google.code.gson:gson:+'查看最新包版本后替换包版本Retrofit需要定义一个接口,用来返回我们的Call对象,示范为GET请求。 @GET("/meitumeiju/") Call<R

2017-05-23 14:28:38 137

原创 retrofit的使用,

官网:http://square.github.io/retrofit/1、定义接口:public interface SentenceService { @GET("/meitumeiju/") Call<ResponseBody> loadMeiju( @Query("page") String page); @GET("/meitumeiju/{type}/")

2017-05-04 10:16:12 213

原创 View的工件原理:认识ViewRoot和DecorView

ViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均通过ViewRoot来完成的,在ActivityThread中,当Activity被创建完成毕后,会将DecorView添加到Window中,同时创建ViewRootImpl对象,并将ViewRootImpl对象和DecorView对象建立关联root=new View

2017-05-03 16:09:19 420

原创 TabLayout的使用

1、布局配置<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height=

2017-04-25 10:15:42 294

原创 学习笔记:View的事件体系4:View的事件分发机制

所谓点击事件的事件分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent 产生了以后,系统需要把这个事件传递给一个具体的View,而这个传递过程就是事件分发。点击事件的分发过程由三个很重要的方法来共同完成:dispatchTouchEvent,onInterceptTouchEvent和onTouchEvent,public boolean dispathcTouchE

2017-04-19 17:23:38 238

原创 学习笔记:View的事件体系3:弹性滑动

3种弹性滑动方式的学习 1、使用Scroller 2、使用动画 3、使用延时策略 一、使用ScrollerScroller scroller=new Scroller(mContext);//缓慢滚动到指定位置private void smoothScrollTo(int destX,int destY){ int scrollX=getScrollX(); int d

2017-04-19 10:39:27 210

原创 学习笔记:View的事件体系2:View的滑动

3种滑动方式的学习 一:使用scrollTO/scrollBy 二: 通过动画给View施加平移效果 三:通过改变View的LayoutParams使View重新布局从而实现滑动一:使用scrollTo/scrollBy 1:scrollBy实际调用scrollT方法 2:scrollBy实现基于当前位置的相对滑动 3:scrollTo实现基于所瑞传递参数的绝对滑动 4:scroll

2017-04-17 14:45:14 286

原创 学习笔记:View的事件体系

View的基础知识 内容:View的位置参数、MotionEvent、 TouchSlop、VelocityTracker、GestureDetector、Scroller对象1View的位置参数 View的位置主要由四个顶点决定: top、left、right、bottom 根据图可以很容易得出宽高坐标 width=right-left; he

2017-04-13 11:54:00 230

原创 另一种fragment切换方式

1:初始化视图,默认开启第一个fragmentprivate void initView() { transaction = getSupportFragmentManager().beginTransaction(); Fragment fragment = getInstanceByIndex(FIRST_FRAGMENT_TRANSACTION);

2017-04-13 11:13:02 291

原创 Fragment启动方式

一:通过代码启动 包名:import android.app.FragmentTransaction; 1 、定义一个frameLayout布局 <FrameLayout android:id="@+id/fl_content" android:layout_width="match_parent" android:layout_height="

2017-04-12 17:22:42 5952

原创 注册

定义布局文件:<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/a

2016-12-22 14:44:33 212

空空如也

空空如也

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

TA关注的人

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