自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鬼芯

越努力 越幸运

  • 博客(33)
  • 收藏
  • 关注

原创 组件化封装之标题栏Toolbar

封装前后对比封装前: 在每个Activity或者Fragement写标题栏布局文件 在每个Activity或者Fragement给相应控件赋值,设置点击事件 在BaseActivity中进行赋值或者点击事件封装后: 只需要在相应的Activity或者Fragment中一行代码进行相应的设置 好处:解耦效果使用方式继承Bas

2018-01-30 17:25:36 394

原创 Android性能优化

Android性能优化合理管理内存节制的使用Service如果应用程序需要使用Service来执行后台任务的话,只有当任务正在执行的时候才应该让Service运行起来。当启动一个Service时,系统会倾向于将这个Service所依赖的进程进行保留,系统可以在LRUcache当中缓存的进程数量也会减少,导致切换程序的时候耗费更多性能。我们可以使用IntentService,当后台任务执行结束后会自动

2017-03-15 17:16:53 458

原创 12,对ListView的适配器的封装BaseListAdapter

实现的思路1,BaseAdapter 的分析 1,构造方法 需要传递一个泛型的集合,并使用之成员化 使用泛型,要在类名中声明该泛型 2,getCount 对集合进行非空判断,并返回mData.size() 3,getItem 对集合进行非空判断,并返回mData.get(position); 4,getIt

2017-03-05 14:20:07 326

原创 11,ListView+SpringView+网络数据统一处理+基类的抽取

抽取的好处减少代码量逻辑更加清晰抽取的注意事项1,所有的成员变量类型都改为 protected2,对于有泛型类型的数据类型,要使用泛型,并在类中声明该泛型3,对于有基类类型的数据类型,要使用基类,如:NewsPagerAdapter 在基类中类型改为BaseAdapter4,对于在基类中不能实现的方法,抽取一个方法,可以在子类中实现(分为必须实现和选择性实现)5,对于不确定的类型,尽量使

2017-03-05 01:59:14 733

原创 ListView + SpringView,实现条目的数据展示[网络数据统一处理版]

### 对网络数据统一处理的原因:初始化数据,刷新数据,加载数据,都需要进行网络请求如果不统一处理,冗余代码过多### 解决方法: 1,创建3个常量 ,用来记录3种状态,并将状态在请求的时候,传递给封装的网络请求,并在接口回调方法时传回来 2,让NewsPagerFragment实现封装的网络请求的接口 3,重写onError和onResponse方法,使用swit

2017-03-04 23:27:57 328

原创 基于okHttpUtils网络请求的基类抽取升级版

二次封装的功能1,网络的get请求2,xml数据解析3,网络的post请求4,支持请求头的添加5,支持post文件上传,类似于表单注意事项post请求上传文件,因为不知道文件的具体的个数 1,需要先获取一个泛型为<String,File>的Map集合 2,在okHttpUtils中间,遍历集合,并添加文件代码的实现package com.example.guixin.os

2017-03-04 22:10:01 378

原创 基于okHttpUtils网络请求的基类抽取

二次封装的功能1,网络的get请求2,Xml数据解析封装后,子类只需要实现的步骤1,实现getUrl方法,提供一个请求的url地址2,选择性实现getParamsMap方法,提供一个请求参数的map集合,因为部分可能不需要参数3,子类继承基类的时候,基类要声明泛型的具体类型为什么要进行基类的抽取1,因为后期网络请求的地方比较多2,减少代码量3,结构更加清晰抽取需要修改的地方处理1,每

2017-03-04 20:46:14 331

原创 基于OkHttpUtils网络请求的二次封装(简单版)

为什么进行二次封装1,减少代码量2,后期换网络处理框架方便二次封装的实现原理1,将网络请求提取在一个方法中2,对里面的可变参数,可以通过参数传递过去,也可以提供一个set方法传递过去3,对于请求失败和成功,我们可以使用接口回调,让调用该方法的对象处理封装后的网络处理类的功能1,网络请求2,xml数据转换成javaBean每一个处理网络请求的ListView都要处理的3数据方法1,初始化

2017-03-04 02:02:30 698

原创 ListView + SpringView,实现条目的数据展示

要实现的效果1,初始化数据2,下拉刷新3,上拉加载UI用到的主要控件SpringView 1,带有下拉刷新,上拉加载的功能 2,带有下拉刷新和上拉加载的监听器 3,带有多种头和尾的UI效果 注意事项: SpringView可以在代码中Header和Footer的效果 SpringView也可以在代码中设置样式 样式

2017-03-04 00:55:08 701 2

原创 SmartTabLayout + ViewPager的使用

使用步骤1,使用的前提 1,SmartTabLayout+ViewPager是在Fragment中使用 2,之前抽取了一个BaseFragment2,UI简单布局 RelativeLayout SmartTabLayout height="48dp" ViewPager 注意: 这个可以直接

2017-03-02 20:48:02 6581

原创 BaseFragment的一般抽取

抽取的思路1,根据Fragment中几个常用的方法来抽取相应的方法 1,onCreate //1,可以将接收的参数或者getContext()获取,然后子类可以直接使用 //2,主要用来接收参数 init(); 2,onCreateView //用来展示绑定的视图,子类必须实现 initView();

2017-03-02 06:34:58 351

原创 FragmentTabHost+Fragment的使用

UI布局思路1,上面是一个Fragment2,下面是一个FragmentTabHost,但是中间有一个被ImageView覆盖FrameLayout weight="1" height="0dp"RelativeLayout FragmentTabHost ImageView centerInparent="true"Activ

2017-03-02 06:29:00 505

原创 DrawerLayout,NavigationView 和 ActionBar的使用

UIDrawerLayout NavigationView layout_gravity="start" app:menu="@menu/" TextViewMainActivity中1,初始化actionBar 1,获取系统的actionBar 2,设置actionBar左上角的图标显示 3,设置actionB

2017-03-02 02:52:58 502

原创 android全屏启动页[解决黑屏白屏]

1,在setContentView,去掉标题栏 状态栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);2,使用handler的postDelay方法执行延迟的跳转到MainActivity

2017-03-02 01:11:35 552

原创 android属性动画基础

Android动画android实现动画的方式1. View Animation:补间动画 1. 位移,缩放,旋转,渐变,集合2. Drawable Animation:帧动画3. 自定义动画 1. 自己通过继承Animation自己实现动画类,但是有了属性动画,可以用属性动画替代这种做法.4. Property Animation:属性动画 1. 补间动画可以做的

2017-03-02 01:06:12 174

原创 导入androidStudio项目出现错误

1,修改工程的build.gradle的插件版本2,修改工程下gradle\wrapper目录下的gradle-wrapper.properties的gradle版本3,修改每一个模块的build.gradle 修改SDK版本 buildToolsVersion修改为自己的最高版本(向下兼容) sdk\build-tools

2017-01-06 20:14:37 4166 1

原创 android自定义View之滑动删除

效果图实现功能1,可以向左滑动,右侧出现删除2,向左滑动如果删除出现一大半,松手打开删除,反之关闭删除3,应用场景 微信消息的删除功能实现原理1,外面是一个ListView2,条目是一个自定义控件继承ViewGroup 1,左边一个TextView,右侧屏幕外也有一个TextView 2,所以继承ViewGroup实现步骤1,创建一个SlideDeleteView类

2017-01-05 20:54:01 2818 4

原创 组合控件之tab标签

功能特色1,类似tab的标签页2,可以修改左边的文字和右边的文字3,左边和右边都有相应的点击事件布局文件1,注意事项:根标签LinearLayout,主要用于相应的javaBean继承的类2,类似于按钮的TextView的2种实现 1,宽高给固定的值width="96dp" height="36dp" gravity="center" 2,宽高都是wrap_content,给

2017-01-05 13:05:43 266

原创 糗事百科前端后台android小案例整理

前端 后台 andriod整个项目流程 mui的使用1,拷贝需要的源码2,在Hbuilder里面创建一个移动项目,将里面的css,js,font目录拷贝过来3,在自己的源码中使用link导入css,使用script导入mui的jsjqurey的使用一,为什么要使用jquery 1,使用jquery保证页面元素加载完毕 2,使用jquery获取json数据,并解析成

2016-11-19 13:08:58 549

原创 Android四大组件之Activity

Activity生命周期Activity生命周期的4种状态活动状态(resume) Activity调用onResume获取焦点暂停状态(paused) Activity调用onPause方法,失去焦点,但是可见停止状态(stopped) Activity调用onStop方法,不可见死亡状态(destroy) Activity调用onDestroy(弹出栈释放资

2016-11-09 12:06:31 165

原创 android中使用HttpURLConnection实现多线程下载

HttpURLConnection下载HttpURLConnection下载步骤1,将要下载的路径封装成一个url对象(一定是可以下载的路径)2,通过url获取conn,并设置conn的各种属性,最重要的是setRequestMethod("GET");3,判断code,如果是200,通过conn获取要下载的文件大小len4,在本地创建一个RandomAccessFile文件,并设置长度 ra

2016-11-06 13:33:13 1846

原创 HttpURLConnection实现多线程下载

HttpURLConnection下载HttpURLConnection下载步骤1,将要下载的路径封装成一个url对象(一定是可以下载的路径)2,通过url获取conn,并设置conn的各种属性,最重要的是setRequestMethod("GET");3,判断code,如果是200,通过conn获取要下载的文件大小len4,在本地创建一个RandomAccessFile文件,并设置长度 ra

2016-11-06 09:41:32 645

原创 AsyncHttpClient实现上传 HttpURLConnection实现下载

HttpURLConnection 上传不可以在HttpURLConnecition中,要使用post将请求体写出,但是抓包的请求体是乱码 1,先设置连接可以写出conn.setDoOutput(true); 2,如果是登陆,将用户名和密码封装成一个字符中请求体 3,获取连接输出流,然后将请求体字符串输出AsyncHttpClient1,将要上传的文件路径封装成文件路径对象

2016-11-05 20:37:07 478

原创 HttpURLConnection HttpClient AsyncHttpClient 实现Post或者Get方式登陆

HttpURLConnection登陆get方式登陆1,将用户名和密码封装在url中,并对用户名编码URLEncoder.encode(username)2,设置请求方式conn.setRequestMethod("GET");3,获取响应码,并判断4,如果状态码为200,获取输入流,并转换为字符串5,将字符串发送到主线程的handleMessage(Message msg)方法,因为网络,

2016-11-05 20:33:20 561

原创 SmartImageView使用

1,创建SmartImageView 继承 ImageView 2,添加setImageUrl(String path)方法 3,一定要将所有的构造方法重写(alt+shfit+s + c); 4,因为SmartImageView是View,属性主线程可以修改UI 但是网络请求需要在子线程中实现(将bitmap发送到handler) 使用Handler(在han

2016-11-01 15:25:27 866

原创 Java多态 抽象 接口

多态的概述及其代码体现A:多态概述 事物存在多种形态B:多态前提 a:要有继承关系b:要有方法重写c:父类引用指向子类对象C:案例演示class Demo { public static void main(String[] args) { Cat cat = new Cat(); cat.eat(); Animal ani = n

2016-08-24 02:08:49 277

原创 面向对象 继承

代码块的概述和分类A:代码块的概述 在java中 使用{}括起来的代码被称为代码块B:代码块的分类根据其位置和声明不同 可以分为 局部代码块 构造代码块 静态代码块 同步代码块C:常见代码块的应用局部代码块 在方法中出现:限定变量生命周期 及早释放 提高内存利用率构造代码块(初始化块) 在类中方法外:多个构造方法方法中相同的代码存放到一起 每次调用构造方法都执行并且在构造方法前执行静

2016-08-23 17:31:11 217

原创 构造方法和static关键字的使用

构造方法概述和格式* 构造方法概述和作用 * 给对象的数据(属性) 进行初始化 * 构造方法的格式特点 * a格式:修饰符 类名(参数类型 参数名){代码块 } * 方法名和类名相同 * 没有返回值类型 连void也没有 * 没有具体的返回值 return * 构造方法的重载及注意事项 * 构造方法重载 * 重载:方法名相同 返回

2016-08-22 20:06:18 1666

原创 java面向对象基础

面向对象思想面向过程 第一步第二步自己慢慢实现面向对象 找到对象(第一步 第二步)封装到对象中 由对象来实现第一步 第二步举例 买菜(面向对象) 1找卖菜的老大妈 大妈种菜洗干净2给钱得到菜 买菜(面向过程) 1自己种菜2自己洗干净3得到菜 面向对象思想特点 1 是一种更符合我们思想习惯的思想2 可以将复杂的事情简单化3 将我们从执行都变成了指挥者4

2016-08-12 01:45:36 198

原创 Java数组的学习

数组的概述与定义A数组的概念 1,数组是存储同一个数据类型的多个元素的集合 也可以看成一个容器2,数组可以存储基本数据类型 和 引用数据类型3,数组本身属于引用数据类型 数组的定义格式 数据类型[] 数组名 = new 数据类型[] (数组长度); * 数组初始化A什么是数组的初始化 为数组分配连续的内存空间 并为每个元素赋值 B如何对数组进行初始化 动态初始化 只指定数

2016-08-11 06:56:43 199

原创 Java方法的学习

1方法的概述和格式说明A:为什么要有方法 提高代码的复用率 B:什么是方法 完成特定功能的代码块 C:方法的格式修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ……){ 方法体; return 返回值;} 格式说明:修饰符: public static 相当于方法的一些属性返回值类型: 功能结果的数据类型,包括基本数据类型

2016-08-11 00:22:56 226

原创 Java基本运算符

逻辑运算符的基本用法 & | ^ ! & 逻辑与 全为真 才为真 | 逻辑或 有一个为真 都为真 ^ 逻辑异或 结果不一样为true 结果一样为false ! 逻辑非 结果取反逻辑运算符&&和&的区别1,&&和&最终的结果是一样的2,&&具有短路效果 左边为false 右边不执行 结果为false//举例 System.

2016-08-10 03:54:24 227

原创 Java语言课前了解

Java语言的跨平台 JDK JRE Java环境变量的配置

2016-08-04 23:32:12 277

空空如也

空空如也

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

TA关注的人

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