自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android MVP架构浅析

MVP从更早的MVC架构演变过来的,与MVC有一定的相似:(1)MVC的缺点:在Android开发中,Activity并不是一个标准的MVC模式中的Controller,它的首要职责是加载页面布局和初始化用户界面,接受并处理来自用户的操作请求。随着界面及逻辑的复杂度不断提升,Activity类的职能不断增加,以致变得庞大臃肿。(2)MVP通常有以下几个部分组成:View:负责绘制和更新UI,与用户

2016-10-19 17:35:02 387 1

原创 EventBus实现Activity与Service通信

现在有如下需要:在一个Service启动一个定时线程,每隔一段时间从网络上获取一张图片,并将获取的图片更新到ActivityUI上。(1)如果通过bindService()方法启动一个Service,虽然可以实现Service和Activity通信,但是绑定本地Service比较繁琐。 (2)如果通过startService()方法启动一个Service,通常情况下,Activity无法与Serv

2016-10-17 00:29:26 5517

原创 Volley简单封装之Gson解析

这里设计了一个InternetHelper接口,然后实现了接口 VolleyHelper类,Activity调用 VolleyHelper类中的方法发起网络请求,然后通过继承抽象类VolleyCallBack来获得网络请求的结果,通知View视图层更新UI。至此,就将View视图和网络请求(数据处理)隔离开。思路:{“weathering”{“city”:”beijing”,”cityid”:”10

2016-10-16 00:05:28 483

原创 Java之线程通信一

写2个线程,其中一个打印1-52,另一个打印A-Z,打印顺序是12A34B56C….5152Z。这里使用线程通信的方式控制上面的打印顺序。Printer类:该类提供两个同步方法printChar()和printNumber(),分别打印字符和数字。通过两个打印线程之间的通信控制:每打印两个数字后,打印一个字符,如此循环。代码如下:public class Printer{ private

2016-10-14 21:23:59 414

原创 Jsoup实现网络数据抓取2

使用Jsoup工具解析数据,Jsoup采用的DOM进行解析数据的,总体是比较简单,根据各个元素的attr,class以及继承关系,就可以访问到需要的数据。代码如下:(1)SecondActivity代码public class SecondActivity extends Activity{ List<DataHolder> dataHolders = new ArrayList<>();

2016-09-07 16:07:57 330

原创 Jsoup实现网络数据抓取1

最近一个做金融的同学问我,能不能写一个小的Demo,得到金十数据网上每周三22:30美国能源信息署发布的原油数据。这里使用Jsoup工具来获取网络数据。具体思路:(1):这里写两个Activity,FirstActivity主要使用自定义的ListView显示日期列表,该列表实现了下拉加载更多的日期项的功能,点击每一个Item可以启动SecondActivity,并传递一个日期值,根据日期值获得每

2016-09-07 15:28:55 286

原创 Android之绘制动态折线图

所谓动态折线图,就是折线图能随着手指的滑动进行动态绘制,这里很定会产生动画效果。基于这个效果,这里使用SurfaceView进行制图。实现步奏如下:(1): 这里新建一个绘图ChartView,继承SurfaceView并实现SurfaceHolder.Callback , Runnable接口,主要绘图工作在子线程中完成。(2):现实 SurfaceHolder.Callback接口的三个方法,

2016-09-07 14:24:18 3485

原创 Android之线程池控制并发数多线程下载

Android之线程池控制并发数多线程下载多线程下载并不是并发下载线程越多越好,因为当用户开启太多的并发线程之后,应用程序需要维护每条线程的开销,线程同步的开销,这些开销反而会导致下载速度降低。因此需要避免在代码中直接开启大量线程执行下载。主要实现步奏: 1: 定义一个DownUtil类,下载工作基本在此类完成,在构造器中初始化UI线程的Handler。用于子线程和UI线程传递下载进度值。 2

2016-09-02 18:57:31 792

原创 Android平台移植FFmpeg

FFmpeg简介FFmpeg是一个全球领先的多媒体框架,能够友好的在大部分设备实现解码、编码、转码、复用、解复用、流媒体、过滤和播放。谈到音视频处理必须提到雷霄骅博士(行内称为雷神),我想音视频开发的从业人员应该都看过雷神的博客,这里首先致敬一下雷神,博客地址:《雷霄骅的博客专栏》,分享了很多音视频方面的技术文章、开源代码以及 FFMPEG 源码的分析,无论对入门者还是资深开发,都有很大的价值。本系

2017-09-16 10:40:05 384 1

原创 demo1233

public class DepthPageTransformer implements ViewPager.PageTransformer { private static final float MIN_SCALE = 0.75f; public void transformPage(View view, float position) { int pageWidt

2017-02-25 20:06:20 285

原创 DemoA1213

public class MainActivity extends BaseActivity { private SliderImageLayout mSliderImageLayout; private RecyclerView mRecyclerView; private CateAdapter mCateAdapter; private AutoScrollTe

2017-02-25 20:01:39 285

原创 ViewGroup的dispatchTouchEvent方法源码解读

@Override public boolean dispatchTouchEvent(MotionEvent ev) { final int action = ev.getAction(); final float xf = ev.getX(); final float yf = ev.getY();

2016-12-09 15:53:03 299

原创 Android滑动冲突解决

Touch事件的冲突在Android开发中是非常常见的,有时为了实现较好的效果,必须解决Touch事件冲突的问题。自定义一个ScrollBackLayout控件,该控件继承LinearLayout。要求该控件能随手指的下滑而下滑,松开手指时能自动弹回原处。这个功能实现起来是比较简单的。但是如果在该控件中添加一个ScrollView控件,这时就会出现Touch冲突的情况。具体解决如下:自定义的Scro

2016-12-09 15:25:03 271

原创 反射专题5

泛型和Class类从JDK5以后,Java的Class类增加了泛型功能,从而允许使用泛型来限制Class类。

2016-12-05 12:42:44 216

原创 反射专题4

反射获取方法的方法下面4个方法用于获取Class对应类所包含的方法

2016-12-05 12:36:05 194

原创 反射专题3

通过Class对象的getField(String name)或getFields()可以获得指定的或者全部的public成员变量

2016-12-05 12:30:45 177

原创 Java反射专题2

反射获取构造器

2016-12-05 12:25:07 250

原创 Java反射专题1

-1-类的加载当程序主动使用某个类时,如果该类还没有被加载到内容中,则系统会通过加载,连接,初始化三个步骤来对该类进行初始化。(如果没有出意外,JVM会连续完成这三个动作),所以有时将这三个步骤统称为类的加载或类的初始化。类加载指的是将类的Class文件读入内存中,并为之创建一个java.lang.Class对象(该Java.lang.Class对象是单实例的,无论这个类创建了多少个对象,它的Cla

2016-12-05 12:20:10 242

原创 Proxy和ProxySelector浅析

代理服务器是介于客户端和服务器之间的一台服务区,设置了代理服务器之后。客户端请求先被送到代理服务器,由代理服务器向真正的Web服务器发送请求,并取回客户端所需要的消息,再送回给客户端。由于大部分代理服务器具有缓冲的功能,它会不断地将新取得的数据存储到代理服务器的本地存储器上,如果客户端所请求的数据在它的本机的存储器上已经存在而且是最新的,那么它就无须从Web服务器取数据,而是直接将本地存储器上的数据

2016-12-04 11:58:36 3339

原创 UDP实现图片群发

UDP协议(用户数据报协议)是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但是这两个Socket之间并没有虚拟链路,这两个Socket只是发送,接收数据报的对象。UDP的优缺点: 1. 因为UDP协议是面向非连接的协议,没有建立连接的过程,因此它的通信效率很高。很适合一些即时性很强的应用场景。2.因为在正式通信前不必与对方先连接,不管对方状态就直接发送,至于对方是否可以收到这些

2016-12-03 22:15:48 1550

原创 Android使用MulticastSocket实现多点广播图片

DatagramSocket只允许数据报发送给指定的目标地址,而MulticastSocket可以将数据报以广播的方式发送至多个客户端。其主要思想是设置一组特殊网络地址作为多点广播地址,每个多点广播地址都被看做一个组,当客户端需要发送,接收广播消息时,加入到该组即可。IP协议为多点广播提供了这些特殊的IP地址,这些IP地址的范围是224.0.0.0至239.255.255.255。当Multicas

2016-12-03 12:46:36 2218

原创 Android实现C/S聊天室

Java中能接受其他通信实体链接请求的类是ServerSocket,ServerSocket对象用于监听来自客户端的Socket链接,如果没有链接,它将一直等待。如果接收到一个客户端Socket的连接请求,ServerSocket的accept()方法将返回一个与客户端Socket对应的Socket(每个TCP连接有两个Socket),否则该方法将一直阻塞,线程也被阻塞。服务端思路:服务端应该包含多

2016-12-02 22:06:29 480

原创 反射和泛型的两个小技巧

泛型能很好的使用能大大减少我们的代码量

2016-11-30 22:57:57 240

原创 PickerView实现全国地址的选择

GitHub有一个开源控件PickerView,可以实现三级联动的效果。虽然该控件使用非常简单,但是填充数据异常繁琐。GitHub上的Demo在填充数据的时候是一条一条地填充的,代码过于冗余。下面提供一种简便的方式来实现。(1)在app目录下新建一个assets文件夹,将province_data.xml文件复制到该文件夹下,该XML文件里保存了全国的省市县的地址数据。(2)使用SAX解析xml文件

2016-11-06 12:14:15 826

原创 Fragment实现列表和内容联动

在平板上经常能看到这种的情况:左边是一个列表,右边是列表项对应的内容,当点击某一个列表时,右边内容区也会随之改变。下面使用Fragment简单的demo:思路:在MainActivity定义一个回调接口,并在列表点击回调该接口,然后在内容区的Fragment设置回调,同时改变Fragment的显示内容。具体代码如下:主布局:<LinearLayout xmlns:android="http://sc

2016-10-19 22:30:30 1812

原创 OkHttp简单使用(未封装)

-1-OkHttp和Volley性能对比(1)OkHttp的优点-a-支持http请求,https请求 -b-支持文件下载-c-使用HttpURLConnection,不用担心android版本的变更。(至少目前都是支持的)-d-支持get,post请求 -e-基于Ht

2016-10-19 21:22:20 369

原创 Android实现网络下载图片保存到SD卡的照片文件夹

最近在学习Android大牛hrman的仿微信图片选择器,需要多个带图片的文件目录,于是用genymotion模拟器的相机拍了几张自拍照,图片都保存在/DCIM/Camera/这个路径下。于是自己就在/DCIM/路径下手动创建了几个文件夹。本来想把Camera下面的自拍照全部复制过去,结果弄了半天也复制不过去(请原谅我太菜)。于是想能不能从网上下载一些图片放到新创建的文件夹下。    

2016-09-02 11:08:45 1313

province_data

全国省市县的全部数据

2016-11-06

空空如也

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

TA关注的人

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