自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 观察者模式

哇,今天设计模式艺术看到了观察者模式,感叹这个jdk内置功能类的强大。之前知道这个功能很强大但是以我的看法一定实现起来很难,之后就没去研究了,今天看了之后才知道原来这个东东是jdk内置的。而且非常好用呢记录一下:首先要理清楚什么事观察者和被观察者,期初我比较迷惑这个称谓的规定,就像除数和被除数的关系,照理说A/B那b应该是被除啊,就像我打你,你是不是被打了???哈哈哈,其实这和正常思维不一

2018-02-06 11:28:07 149

原创 策略模式与状态模式

策略模式适用场景:针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。策略模式就是将每一个行为封装到具体的类,而且使他们可以自由选择和替换。状态模式适用场景:状态模式和策略模式的结构差不多,但目的和本质不一样,状态模式的行为是平行的,不可替代的;而策略模式的行为是彼此独立,可相互替换的。状态模式的行为是由状态来决定的,不同的状态对应不同的行为。代码实现: 策略模式: 需求:打车计费,有出租车

2018-02-05 19:59:09 331

翻译 WebView的使用及交互方式

先记录一些使用技巧: WebView有3个子类,可联合他们一起使用 WebSettings:对webView进行管理和配置 WebViewClient:处理通知和请求事件 WebChromeClient:处理js的对话框等1、加载开始的时候显示loading,加载完成关闭loadingwebView.setWebViewClient(new WebViewClient(){

2017-12-14 17:18:47 340

原创 自定义动画之Drawable结合ProgressBar

今天来说一说使用Drawable做动画。我之前还不知道Drawable可以用来干View能干的事,放在以前如果需要做一个自定义的动画我首先想到的就是自定义View去解决,但是最近我发现通过Drawable也可以去实现,而且还不用measure和layout。 说起我发现Drawable这个东西呢也是有点巧合,因为最近在跟着凯哥的公众号学自定义View,然后学到矩阵变化的时候,我就去想弄明白内部的原

2017-12-13 11:30:45 487

翻译 Activity的实例化过程

上一篇说的是事件分发,但在我们能触摸控件之前发生了什么呢? 今天我就写一下我最近去学的这个问题的答案。了解这个过程还是蛮有意义和价值的。 首先我们应该都知道Android程序的入口是ActivityThread.main()方法。这就是主线程。当我打开应用程序的时候,首先执行的就是这个方法。看下源码:public static void main(String[] args) {

2017-12-12 17:52:09 2438

翻译 一、事件分发

有一段时间没更博客了,想象我写博客的初衷主要有2个原因:如果有人看到了,从中找到一点能帮助到他的东西,这样最好不过了。写给自己看。我相信整理一遍写一遍对自己的理解和认知有很大的帮助。最近闭关修炼,哈哈哈,说的有点魔幻。主要最近对安卓的看法有了一点新的看法,看了一个公众号的推送,有个人将安卓的学习和进阶分为了5个部分:UI性能NDk架构其他这样分是基于项目而言的,不同类型不同定位的项

2017-12-11 19:13:37 180

翻译 canvas以及paint的一些介绍

//bitmap可以获得图像文件信息,然后进行旋转剪切等操作,而且可以指定格式保存图像文件。但bitmap是将图像信息全部存入内存中,所以也容易引发oombitmap:画布canvas:画家paint:画笔drawable:就是将画出来的东西展示出来的接口**获取canvas有2个方式:**1、一种是自定义view和自定义SurfaceView对象获取canvas。由于自定义view和Sur

2017-11-13 11:45:03 519

翻译 容易遗忘的东西(持续添加中)

1、获取文件大小(清理缓存)获取文件的大小(单位B)public static long getFileSize(File file) throws Exception { long size = 0; if (file.exists()) { FileInputStream fis = null; fis = new

2017-11-06 18:33:00 229

翻译 MVP模式分析及简单例子

一直在用MVC,感觉MVC才是最简单最好用的架构。也一直好奇MVP架构有什么神奇的地方,因为没用过MVP。 最近看了 一个项目中的代码,就是典型的MVP架构,当然有些地方用的还是mvc,比如登录界面,因为逻辑简单,就直接mvc写的。但是一些复杂的页面,功能多,且需要后期维护和业务修改的界面就用的MVP。这里也说些MVP的优势: 1、代码解耦 2、结构清晰 3、可复用、

2017-10-31 16:50:29 1102

翻译 Android 6.0权限管理与申请

android6.0之后为了保护用户隐私,一些权限是需要在程序运行时动态检测并需要用户手动设置是否给与这些权限。 权限分为: normal permissions:在清单文件中添加就行了。 dangerous permissions:即使在清单文件中添加了,也需要在运行时通过用户授权。 下面看下dangerous permissions有哪

2017-10-30 15:27:13 186

翻译 Recycleview的itemdecoration使用

最近在做一个项目,有一个页面的功能和微信联系人列表相似,只不过没有右边的abc….。 开始的时候思路是让服务端那边帮我把数据分好组,然后包给我,然后我这边通过ExpandListView去实现,然后将分组的点击事件屏蔽掉。但是且不说服务端大哥不同意,因为他说如果他这边分类的话,要多循环3次,所以不同意,要我客户端自己去分组,无奈啊,然后就自己将请求到的数据分组,然后通过ExpandListView

2017-10-25 11:22:46 368

翻译 Android ndk初探(一)

调用native修饰的方法 一、首先新建一个项目MyFirstJniTest二、新建java类:JniUtils.java,定义native方法:public static native String add();然后我们在activity中调用这个方法:比如textview.settext(JniUtils.add());三、构建项目,然后app\build\intermediates\clas

2017-10-18 19:03:07 221

翻译 android手势操作&&实现滑动切换activity

一、给view设置手势操作有2种方式: 1、自定义view并实现其ontouchevent,然后定制自己的监听手势 2、通过GestureDetector和touchlistener配合使用主要介绍第二种方法: GestureDetector是android提供的手势操作类 用法:GestureDetector g = new GestureDetecto

2017-10-17 13:36:34 3614

原创 全局dialog

public class WholeDialog extends Dialog { private final TextView textView; public WholeDialog(@NonNull Context context) { super(context); setContentView(R.layout.loading_view);

2017-10-16 17:44:11 179

空空如也

空空如也

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

TA关注的人

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