自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

linSir's blog

dream it possible

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

原创 Java利用listener实现回调,即观察者模式

java中实现观察者模式有很多种方式,上一篇文章介绍到了,利用callback的方式实现了回调,这篇文章准备介绍的是利用listener实现回调。Java回调机制根据实时性划分:同步回调异步回调实现方式利用匿名内部类即callbck来实现用listener来实现这两种实现方式本质上是类似的,应用场景略有不同,如果有熟知安卓的朋友应该可以知道,在为一个view添加点击实现的时候是有两种方

2017-04-11 14:15:46 6832 4

原创 Java回调的原理与实现

回调原本应该是一个非常简单的概念,但是可能因为平时只用系统为我们写好的回调的接口了,自己很少实现回调,所以在自己实现回调的时候还是有一点点晕的,现在写这篇文章记录一下,也和大家分享一下怎么写回调接口。回调回调的概念:举个例子就是,我们想要问别人一道题,我们把题跟对方说了一下,对方说好,等我做完这道题,我就告诉你,这个时候就用到了回调,因为我们并不知道对方什么时候会做完,而是对方做完了来主动找我们。

2017-04-11 14:12:18 720

原创 Android中相机的使用

目前主流app都具有上传头像啊,上传图片的功能,看起来好简单的需求,但是其实这里面有一点点不同的地方。先说一下我的思路,因为开发周期的问题,并没有打算自定义相机与图片查询工具,打算采用系统相机和图片查看工具,最开始我打算调用系统的剪裁并且取得的效果还是不错的,因为我最开始做的是系统头像上传的这个功能,后来我采用同样的方法做了上传商品图片的功能,但是这个时候就暴露了之前的隐患。我先说一下,安卓系统的默

2017-04-10 12:27:56 505

原创 WebRTC常用知识点

最近一直在研究WebRTC相关的知识,学习了P2P的链接建立的方式实现了两台终端的互联。也学习了经过服务器中转的广播的工作的模式。最后自己实现了一个经过服务器中转的多人通信的语音的demo。WebRTC官方网站WebRTC是什么WebRTC is a free, open project that provides browsers and mobile applications with Rea

2017-04-10 11:12:03 1037

原创 RecyclerView的点击事件

RecyclerView一、简介这个是谷歌官方出的控件,使我们可以非常简单的做出列表装的一个控件,当然recyclerview的功能不止这些,它还可以做出瀑布流的效果,这是一个非常强大的控件,内部自带viewholder可以使我们非常简单的完成许多操作,正在一步一步取代listview这个控件,当然它也有一些小的缺点,那就是谷歌官方并没有直接给我写出它的点击事件的接口,但是这并难不倒我们,我们可以自

2016-07-26 22:25:11 4522 3

原创 git.oschina免费的、分布式代码管理工具

git.oschina 免费的、分布式代码管理工具更好的协同开发免费分布式开源精神私人代码仓库不需要翻墙官方网站: https://git.oschina.net协同开发:可能一部分人并不是经常进行协同开发,或者大家经常感觉到和别人合作某一个项目还没有自己开发一个项目来得容易,其实这种想法都是不对的,因为一个大型的项目不可能是靠一个人来完成的,这个时候我们就需要使用到了代码管理工具,在

2016-07-13 10:39:50 2185

原创 AndroidAnnotations开源框架

此框架是快速开发的框架,可以大大提高我们编写代码的速率,所以也被大家称为懒人框架,当然类似被称为懒人框架的开源框架有很多种,例如butterknife也是一种注解类型的懒人框架,但是它所提供的注解标签相比之下少之又少,而且我感觉使用这种框架还可以增强我们代码的可读性,也可以是我们的代码变的更加精简。配置这个框架当然也是非常简单的一件事情,当然啊,我现在用的是studio,我就以studio为例,只需

2016-02-27 22:58:50 670

原创 深入理解Activity

简述一下本文的适合人群:具有一定安卓基础的人,如果刚开始起步或者基础不是很牢固的,请先巩固基础,再来看这篇文章,本文还是具有一定难度的。学习意义学习了本文之后能够让我们比较熟练的掌握activity和framework的联系,更能够让我们了解安卓内部的一些实现的机制,等我们在制作开源框架的时候能够将我们所学的只是使用的非常的得心应手,在解决一些实际问题的时候更会非常的熟练。收获activity的本质

2016-02-21 18:29:07 814

原创 夜神模拟器——最好用的安卓模拟器

简洁废话几句要说一下,我曾经也一度认为genymotion是一款最好用的安卓模拟器,并且也深深的爱上了genymotion,但是,自从我装了win10之后,我的模拟器三天两头的出毛病,我每天就混迹在各种贴吧,各种群里面寻找解决办法,而且每次的毛病还不一样,最后我得到了官方的回答是genymotion在win10上有时会产生bug,所以我决定找一款新的模拟器,自从我发现了夜神模拟器真的发现它非常棒。功

2016-02-19 15:21:12 7226 1

原创 Date和String类型相互转化

Date——>String系统中默认的String d=date.toString,是输出格林威治时间即: Mon Feb 15 02:42:54 GMT+08:00 2016 Wed Feb 17 05:53:23 GMT+08:00 2016 Thu Feb 18 12:16:06 GMT+08:00 2016 这样的时间我们用起来可能不是很方便所以需要转换成String类型,即: D

2016-02-18 20:31:07 877

转载 Android中常用颜色值

安卓中常用颜色值,非常全面,非常清晰http://blog.csdn.net/chindroid/article/details/7740949

2016-02-07 02:47:22 591

原创 安卓界面延时跳转

界面延时跳转采用Handler的方式,开启一个新的线程,并设置延时的时间即可:public class SplashActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

2016-02-07 02:29:25 1245

原创 反编译+重新打包APK

反编译+重新打包APK反编译:只看图片资源:如果我们只需要得到apk中的图片资源,这是最简单的,我们只需要将apk文件的后缀改成zip,然后将其解压,这样我们就可以一目了然地看到文件中的res路径,这里面包含着drawable等等,我们直接就可以得到图片资源了。想看源码:1.同样上面的步骤,当我们得到解压后的文件的时候,里面会有一个classex.dex的文件,它就是java文件编译再通过dx工具打

2016-02-06 21:26:45 990 1

原创 Git

Git作用:1.备份代码:(代码的最新的状态),并且可以记录历史,修改记录等,像一个时光机一样,回到以前的代码的状态,我们可以在公司的时候将它提交到版本管理工具上面,然后到家里再下载下来。 2.团队协作:团队合作完成某个项目。版本控制的发展历程cvs–>svn–>git–>github cvs:始祖级别的版本管理工具,发明于1985年,是集中式的管理工具(必须联网才可以工作); svn:200

2016-02-06 20:44:24 486

原创 设计模式-状态模式

//先说一下,我感觉状态模式,稍微理解和实现上有一点点难度,由于我也是在边学边整理设计模式,之前的设计模式都非常简单的,用几个小时就理解,实现,整理出来了,唯独目前的这个状态模式,我弄了好久啦,都小半天了,还是没理解完呢,先放一放,学学python,再来接着写。

2016-02-04 00:04:13 414

原创 设计模式-装饰者模式

设计模式-装饰者模式·概述23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。·装饰者模式的特点1.装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。2.装饰对象包含一个真实对象的引用(reference)3.

2016-02-03 02:43:33 654

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

设计模式-观察者模式观察者模式:观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。

2016-02-01 23:24:06 870

原创 设计模式-工厂模式

设计模式——工厂模式工厂模式:工厂模式是我们最常用的实例化对象的模式,是用工厂方法替代new操作的一种模式。工厂模式在我们的java代码中随处可见,工厂模式就相当于创建实例对象的new,有的时候我们经常根据类生成类的实例对象,这个时候我们就需要考虑一下了,是否可以考虑用工厂模式替代原有的方法了,虽然我们用工厂模式可能多做一些工作,但是这样的方法会给系统带来更大的可扩展性和尽量少

2016-01-31 23:24:51 431

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

设计模式——适配器模式适配器模式:在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。适配器类型:适配器分为两类,第一类是对象适配器模式,第二类是类适配器模式。对象适配器:在这种适配器模式中,适配器容

2016-01-31 02:01:22 621 1

原创 设计模式-单例模式

单例模式:单例模式是一种常用的软件设计模式,通过单利模式可以保证我们的系统中一个类只有一个实例,并且该类易于外界的访问。单利模式存在的意义:例如,我们的系统中可以有多个打印的任务,但是我们只能有一个正在执行的打印的任务,这个正在执行的打印的任务就需要单例模式来控制。单利模式特点:1. 一个类只能有一个实例

2016-01-29 17:50:57 463

原创 设计模式总括

设计模式:设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式的特点:设计模式可以增强我们的代码的可读性,增强我们代码

2016-01-29 17:06:09 462

原创 TabLayout+viewpager构成主流软件界面

目前市场上主流的app,大多主界面都是由两到三个fragment所构成的,我们可以想一下主界面是如何构成的。当然我们的主界面有很多种构成的方式,例如我们可以用radiogroup+viewpager;也可以用tablayout+viewpager;当然我们也可以完全的自定义等等吧,很多种方式都能够构成我们的主界面,这里我为大家介绍的是,TabLayout+viewPager来构成我们的

2016-01-29 02:52:25 630

原创 Launcher界面元素标准名称及四大操作

Launcher:Anrdiord系统启动后加载的第一个程序,这个程序是其他应用程序的入口。Launcher的构成:HomeScreen:(Workspace+hotseats),short,livefolder,appwidget,wallpagerAllApplist(Gridview)开发一个自己的launcher并不困难,但是我们今天想要做的

2016-01-29 01:38:39 497

原创 快速排序

快速排序背景:应该是最为主流,应用最为广泛的算法了,快速排序顾名思义它的排序速度非常之快,快速排序的特点是原地排序只需要一个非常小的辅助栈,快速排序的缺点就是,快速排序非常的脆弱,在实现的时候要非常的小心才能够避免低劣的性能,我们也在各种教训中大大改进了快速排序的算法,使它的应用变得更加广泛。快速排序的性质:快速排序是一种分治的排序算法,他将一个数组分成两个子数组,将两部分独立

2016-01-19 19:50:15 490

原创 希尔排序

希尔排序的优点:希尔排序,是效率最高的简单排序的算法了,在很多情况下我们都会很喜欢希尔排序的,因为希尔排序的代码量很小,而且希尔排序并不需要使用额外的内存空间,和更为高效的算法比,只要是我们的N不是特别的大(N是需要排列的元素)我们都会优先考虑希尔排序,因为希尔排序比更加高级的算法相比,排序上的时间是差不多的。尤其是当我们所用的编程语言没有内置的高效的算法的时候,我们就可以优先考虑希尔排序了。

2016-01-19 17:04:56 802

原创 插入排序

插入排序我们有了选择排序,冒泡的基础了,我还是说一下我对排序算法的认识吧,感觉排序这个东西嘛,在我们日常的代码中可能用哪种差别不是特别的大,但是如果要处理很多数据的时候,排序的重要性便体现出来了,而且我认为基础算法和编程的基础是我们每个人都应该具备的知识吧,所以认真的分析一下还是有一点点必要的。然后我想说的就是插入排序的思想,插入排序的思想和我们在斗地主的时候喜欢将牌从大到

2016-01-18 01:42:20 630 1

原创 选择排序

选择排序选择排序,可以说是所有排序中最为简单的一种方式,选择排序的原理就是,把所有数中最小的数挑出来放在第一个位置,然后不再考虑第一个数,剩下的数中再将最小的挑出来放在第一个位置,以此类推,这样我们便可以将一列数进行排序了,这种算法非常的简单,我们今天想说的不仅仅是算法的实现,也是整个排序和代码的艺术性的实现,下面让我们看一下我们的代码:package paixu;

2016-01-18 00:55:01 466

原创 viewpager的使用方法

viewpager的最简单的使用方法,之所以说是简单的使用方法,是因为我们这里采用的是:简单适配器即:PagerAdapter,当然我们的安卓中也有FragmentPagerAdapter:静态的适配器,FragmentStatePagerAdapter:动态的适配器。然后代码十分的简单,这里 我就把代码给大家粘上来了,大家可以看一下。public cl

2015-12-29 23:58:16 729

转载 display:inline、block、inline-block的区别

display:block就是将元素显示为块级元素.  block元素的特点是:  总是在新行上开始;  高度,行高以及顶和底边距都可控制;  宽度缺省是它的容器的100%,除非设定一个宽度  , , , , 和 是块元素的例子。  display:inline就是将元素显示为行内元素.  inline元素的特点是:   和其他元素都在一行上;  高,行高及顶

2015-12-18 16:44:32 449

原创 安卓小项目之自定义闹钟

近期我正在做一个安卓闹钟的项目,在这个项目中我真可谓是历尽千辛万苦啊,平均每天研究这个程序真的可以研究10个小时左右啊,真的是让我头疼死了。直至现在,我已经可以用好多种方法来实现这个闹钟了,然后如果大家有什么不会的可以给我留言,我会非常有耐心的为大家解答,我现在就用一种我自认为最简单的方法为大家介绍一下。我们首先是要想,一个闹钟的功能,当然要有设置时间的功能,然后到时间要有提醒的功能,

2015-12-10 00:53:46 3744

原创 Intent的详细分析

Intent全部功能与详细解析:Intent分为显示Intent和隐式Intent:一、显示Intent的应用之——两个activity的跳转:下面为大家首先介绍一下显示Intent:显示的Intent故名思意,动作方式比较明显,所以我们称它为显示Intent,它可以帮住我们实现两个活动之间的跳转,Intent有许多的构造函数的重载,其中Intent(Context packa

2015-11-30 16:08:32 536

原创 探索ListActivity

当我们想要实现带有图片的listView的时候我们可以通过listView的方式来实现,也可以通过listActivity的方式来实现,下面我为大家展示一下如何利用ListActivity的方式来实现:首先我们要在我们的布局文件中,写出我们想在listview里面每一行所展示的东西,例如我们让我们的每一行的listview展示出一个图片一个主标题一个内容简介吧,那么我们便可以开始我们的代码

2015-11-29 15:05:22 502 1

原创 安卓中的数据存储

安卓中的数据存储: 1.xml(share preference) 2.Bianray File(file) 3.关系型数据库 SQLite3 4.网络访问 Network,分为socket,http,https由于本人也在学习阶段,写此博客也是为了日后复习方便,所以今天我只介绍share preference这种最为简单的存储方式,日后再为大家介绍其余的三种方式。share prefere

2015-11-21 13:51:08 495

原创 用Android实现串扫描操作,将带有“111”字符的输出1,否则输出0

大体思路就是,先写出一个editext用来获取文本内容,再写出一个textview用来显示我们同步生成的文本。然后我们要调用系统的textWatcher的函数,然后会出现三个复习的子类:@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) { }@Ove

2015-10-09 09:47:38 364

原创 Spineer的用法

spineer的基本用法:RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pa

2015-10-06 16:50:59 1050

空空如也

空空如也

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

TA关注的人

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