- 博客(41)
- 资源 (3)
- 收藏
- 关注
原创 二分法查找升序和降序集合
二分法查找list并进行数据的增删改 系统提供的方法是对升序list或数组进行查找 返回的值>0则代表找到,小于0表示没有找到 如果小于0 那么取反则是数据需要插入的位置 list和数组的查找系统提供的方法为 : Collections.binarySearch() ContainerHelpers.binarySearch() public class Test {
2017-07-09 17:21:18 1948
原创 PopupWindow 设置动画无效
PopupWindow 设置动画的方式,网上教程一搜一片,不在复制.但是设置后发现动画无效, 发现:popupWindow.setAnimationStyle(R.style.PopupAnimation);popupWindow.showAtLocation(findViewById(R.id.parent), Gravity.CENTER| Gravity.CENTER, 0, 0)
2017-04-24 20:12:24 2288
原创 学习笔记-包管理机制
在对加密APK安装的部分,按照书中所述:➜ /Users/lpf/Downloads openssl enc -aes-128-cbc -k 000102030405060708090A0B0C0D0E0F -iv 000102030405060708090A0B0C0D0E0F -in okcoin_no_jiami.apk -out okcoin_jiami.apk//
2016-11-24 15:36:45 383
原创 Socket.io解压缩
项目中的数据请求,因为是交易平台,数据的实时性要求比较高,从之前的轮询请求获取数据要改成数据的推送.用的Socket.io 框架 . 因为数据量比较大,如果直接传输会对带宽造成影响.后台把数据压缩后传输,在客户端接收到数据后,解压后展示.服务端压缩代码如下:public static void sendMessage(SocketIOClient client,String me
2016-09-29 09:15:58 931
原创 java.lang.IllegalArgumentException parameter must be a descendant of this view
java.lang.IllegalArgumentException: parameter must be a descendant of this view at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:5335) at android.view.ViewGroup.offsetDesce
2016-08-24 08:14:11 3066
原创 Error:(710) Apostrophe not preceded by \ (in )
Error:(710) Apostrophe not preceded by \ (in )是因为在xml文件的文本中含有 ' 或者 % java.lang.IllegalAccessException: access to constructor not allowed构造方法不是publicjava.lang.RuntimeException:
2016-08-23 20:00:18 447
原创 工具介绍
HFS小型服务器, 可用于局域网之间快速的传递资料,方便快捷点击下载Everything, 可快速搜索电脑中的文件点击下载GifCam, 可录制屏幕,生成gif动图,可用于博客内点击下载
2016-08-18 18:21:43 196
原创 打造高质量Android应用读书笔记
原书代码: https://github.com/Macarse/50AH-code Hack1: 最简单的方法实现一个按钮宽度为父布局的一半:weightSum 和layout_weight 属性 Hack5: TextSwitcher ImageSwitcher 文本或图片切换时可以添加动画效果. http://wiki.jikexueyuan.com/p
2016-06-25 18:35:08 677
原创 ListView悬浮头布局
Hack 26 为LIstView添加分段表头 ListView分条目展示 并且条目头悬浮展示布局为FrameLayout 下层为ListView 上层为TextView, 其中TextView与item中的分类头一致public class Hack26Activity extends Activity{ private TextView mTopHeader; //
2016-06-25 16:56:35 754
原创 LED时钟显示
类似于LED 时钟的样式, 字体设置通过ttf设置,ttf为字体格式1.新建assets文件夹,文件夹的的位置必须是和res平级2.新建LedTextView 设置字体 public class LEDTextView extends TextView { private static final String FONTS_FOLDER = "fonts";
2016-06-20 21:27:35 502
原创 格式化TextView 的文本
Hack10 格式化TextView 的文本可以通过Html.fromHtml()方法设置TextView的文本内容.该方法将HTML转化为一个Spanned对象,并以此为参数调用TextView的setText()方法.另外一种方法,不是用HTML格式化文本内容,而是使用SpannableString类创建一个Spanned对象.这种方法可以实现TextView的部分
2016-06-20 21:21:49 388
原创 listView动画效果
创建动画集合对象 加入动画创建LayoutAnimationController 对象,把动画集合对象传入构造方法中LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f);mListView.setLayoutAnimation(conreoller);mList =
2016-06-13 21:17:05 371
原创 设计模式学习--享元模式
享元模式:使用共享对象可有效地支持大量的细粒度的对象.享元模式是对象池的一种实现,用来尽可能的减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享,避免创建过多对象的效果,这样一来就可以提升性能,避免内存溢出等.享元对象中的部分状态是可以共享,可以共享的状态成为内部状态,内部状态不会随着环境变化,不可共享的状态则称为外部状态,他们会随着环境的改变而
2016-06-02 07:31:21 395
原创 饼状图
项目中有一个统计信息的饼状图:看到这种图首先想到了MPAndroidChart开源图库. 具体参考http://blog.csdn.net/shineflowers/article/details/44701645http://www.tuicool.com/articles/NviA3iU但是导入的jar包是几百KB,具体记不大清楚了. 又
2016-06-01 22:35:59 475
原创 设计模式学习--责任链模式
责任链模式: 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,只到有对象处理他未止.使用场景:多个对象可以处理同一个请求,但具体由哪个对象处理则在运行时动态觉得在请求处理者不明确的情况下向对个对象中的一个提交一个请求需要动态指定一组对象处理请求对于职责链中的一个处理者对象,其只有两个行为,一
2016-06-01 07:30:43 258
原创 经典文章集合
double精度计算http://www.cnblogs.com/mingforyou/p/3344489. html 侧滑菜单DrawerLayout http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html 解决DrawerLayout以及vie
2016-05-23 23:41:24 686
原创 handler的内部实现
handler的内部基本上可以分为四部分一 Message对象创建 handler.obtainMessage(),在底层是调用的Message.obtain方法,如果消息池中有Message对象,就直接调用,如果为空,才new Message()进行创建.消息队列中的顺序是由消息本身维护的,消息队列中的消息是类似单链表的结构,每个消息对象都有一个next属性,指向下一个消息.
2016-05-23 23:37:22 483
原创 设计模式学习--迭代器模式
迭代器模式:提供一种方法循序访问一个容器对象中的各个元素,而又不暴漏该对象的内部表示迭代器模式又称为游标模式,其源于对容器的访问,比如list map 数组等,我们知道对容器对象的访问必然涉及遍历算法,我们可以将遍历的方法封装找容器中,或者不提供遍历方法. 如果我们将遍历的方法封装到容器中,那么对于容器类来说就承担了过多的功能,容器类不仅要维护自身内部的数据元素而且还有对外提供遍历的接
2016-05-23 23:33:10 262
原创 设计模式学习--适配器模式
适配器模式:吧一个列的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作使用场景:系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容想要简历一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作需要一个统一的输出接口,而输入端的类型不可预知例如ListView中的
2016-05-22 23:00:30 229
原创 设计模式学习--访问者模式
访问者模式:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作访问者模式是一种将数据操作与数据结构分离的设计模式,其基本想法是软件张拥有一个由许多对象构成的,比较稳定的对象结构,这些对象中的类都拥有一个accept方法用来接受访问者的访问.访问者是一个接口,它拥有一个visit方法,这个方法对访问到的对象结构中不同类型的元素作出不
2016-05-19 00:07:23 273
原创 设计模式学习--状态模式
状态模式: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类状态模式中的行为时有状态来觉得的,不同的状态下有不同的行为.状态模式和策略模式的结构几乎完全一样,但是他们的目的和本质却完全不一样,状态模式的行为是平行的,不可替代的,策略模式的行为是彼此独立,可相互替换的. 状态模式吧对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类,状态模式的
2016-05-17 23:29:38 236
原创 反射
重新复写下反射的知识反射:动态的获取指定的类以及动态的调用类中的内容应用场景:该应用程序已写好,后期出现的接口子类无法直接在该应用程序中用new创建对象. 既然子类不确定,可以通过对外提供配置文件的形式,将不确定的信息存储到配置文件中即可.该程序只要之前写好如何读取配置文件信息即可.如果存储了指定的子类名,就根据具体的名称找到该类并进行加载和对象的创建,这些动作都是在前期定义软件时写好的,
2016-05-16 23:58:16 340
原创 设计模式学习--备忘录模式
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态Originator:发起人,负责创建一个备忘录Memento,用以记录当前时刻他的内部状态,并可使用备忘录恢复内部状态, Originator可根据需要觉得Memento存储Originator的那些内部状态Memento:备忘录,负责存储Origin
2016-05-15 23:52:12 373
原创 设计模式学习--设计原则
单一职责原则: 就一个类而言,应该仅有一个引起他变化的原因如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能来,这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏如果你能想到多于一个的动机去改变一个类,那么这个类就具有多余一个的职责,就应该考虑类的职责分离开放封闭原则: 就是谁软件实体可以扩展,但是不可修改
2016-05-04 23:55:59 319
原创 设计模式学习--桥接模式
桥接模式: 将抽象部分与他的实现部分分离,是他们都可以独立的变化.任何多维度变化类或者多个树状类之间的耦合都可以使用桥接模式来实现解耦如果一个系统需要在构件的抽象化角色和具体角色之间增加更多的灵活性;避免在两个层次之间建立静态的继承联系,可以通过桥接模式事他们在抽象层建立一个管理关系对于那些不希望使用继承或因为多层次继承导致系统类的个数极具增加的系统,也可以考虑使用桥接模式
2016-05-04 00:19:05 251
原创 设计模式学习--组合模式
组合模式:将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使用用户对单个对象和组合对象的使用具有一致性但需求中是体现部分与整体层次的结构时,以及希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了基本对象可以被组合成更负责的组合对象,而这个组合对象又可以被组合,这样不断递归下去,客户代码中,任何用到基本对象的地方都可以使用组
2016-05-03 00:03:55 245
原创 设计模式学习--建造者模式
建造者模式:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示使用场景 相同的方法,不同的执行顺序,产生不同的时间结果时,多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时建造者模式是在当创建复杂对象的
2016-05-02 19:04:52 198
原创 设计模式学习--中介者模式
中介者模式:包装了一系列对象相互作用的方式,是的这些对象不必相互明显作用.从而使他们可以松散耦合,当某些对象之间的作用发生改变时,不会立即影响其他得一些对象之间的作用.保证这些对象可以彼此独立的变化,
2016-04-28 23:08:13 273
原创 设计模式学习--代理模式
代理模式:为其他对象提供一种代理已控制这个对象的访问当无法或不想直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口,
2016-04-27 23:50:20 239
原创 设计模式学习--模板方法模式
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.
2016-04-25 23:38:49 252
原创 设计模式学习--装饰模式
装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活,装饰模式是为已有功能动态地添加更多功能的一中方式.其使用一种对客户端透明的方法来动态地扩展对象的功能,同时他也是继承关系的一种替代方案,当系统需要新功能的时候,相旧的类中添加新的代码,这些新的代码通常装饰了原有类的核心职责或主要功能,但是这样的问题在于,他们在朱磊中加入了新的字段,新的方法和新的
2016-04-24 23:36:42 286
原创 设计模式学习--工厂方法模式
工厂方法模式: 定义一个用于创建对象的接口,让子类决定实例化那个一个类.工厂方法使一个类的实例化延迟到其子类.在任何需要生成复杂对象的地方,都可以使用工厂方法模式.复杂对象适合使用工厂模式.用new就可以完成创建的对象无需要使用工厂模式.主要可以分为四个模块:1.抽象工厂,为工厂方法模式的核心2.具体工厂,实现了具体的业务逻辑3.抽象产品,是工厂方法模式缩创建的产品的父
2016-04-24 17:19:54 281
原创 SpannableString 长按崩溃
问题: SpannableString 长按崩溃 在小米手机和魅族5.0以上系统中遇到java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.Editor$SelectionModifierCursorController.getMinTouchOffset()' on a nul
2016-04-24 14:59:10 2527 1
原创 widget 更新时遇到的问题
问题: widget报的崩溃异常 java.lang.RuntimeException: Unable to start service 应用包名.service.UpdateWidgetWhiteService@42e81dc0 with Intent { cmp=应用包名.service.UpdateWidgetWhiteService }: java.util.ConcurrentMod
2016-04-24 14:52:52 416
原创 widget点击进入应用遇到的问题
问题 : 小组件 点击进入MainActivity MainActivity的启动模式是singleTop 如果进入应用后,在其他activity下home键,再次点击小组件进入应用,这样就在栈中存在了多个重复的Activity Hist #10: ActivityRecord{43107738 u0 应用包名/.ui.margin.MarginActivity t28}
2016-04-24 14:37:44 513
原创 格式化时遇到的问题
问题描述: 平仓时,当数量大于1000时,改变完平仓价格后,平仓按钮变得不可点击.原因: 在弹出平仓框的时候,往数量的输入框填数据的时候,格式化成了标准计数法的格式. NumberFormat coinFormatter = NumberFormat.getNumberInstance(Locale.US);当改变价格的时候,会判断价格和数量都必须要大于0,否则平仓按钮置灰,
2016-04-24 14:29:22 277
原创 设计模式学习--原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.原型模式其实就是从一个对象在创建另外一个可定制的对象,而且不需要知道任何创建的细节.类初始化需要消耗非常多的资源,这个资源包括数据,硬件资源等,通过原型拷贝避免这些消耗;通过new产生一个对象需要非常繁琐的数据准备或访问权限,这是可以使用原型模式;一个对象需要提供给其他对象访问,而且各个调用者可能都需
2016-04-24 12:31:45 305
原创 设计模式学习--命令模式
命令模式: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作.1. 它能较容易的设计一个命令队列2.在需要的情况下,可以较容易的将命令记入日志3.允许接收请求的一方决定是否要否决请求4.可以容易的实现对请求的撤销和重做5.由于加进新的具体命令类不影响其他得类,因此增加新的具体命令类和容易6.把请求一个操
2016-04-19 23:20:04 292
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人