- 博客(28)
- 收藏
- 关注
原创 Android Handler笔记
Android Handler笔记Handler持有Looper和MessageQueue的引用.Looper创建消息队列, 在队列中循环取消息. 持有MessageQueue和Thread的引用.MessageQueue维持一个消息队列, 能进行消息的入队出队操作.Message持有Handler的引用target, 和Runnable的引用callback.在Handler的post(Runnable r)方法中, 给Message的callback赋值为r. 在enqueueMessage
2020-07-03 16:11:42
203
原创 设计模式:建造者模式
定义建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类图 建造者模式包含如下角色:Builder:抽象建造者 ConcreteBuilder:具体建造者 Director:指挥者 Product:产品角色
2017-04-21 16:28:07
338
原创 Android 应用间共享文件(FileProvider)
在 Android 7.0 中调用系统相机拍照,通过SD卡获取原图,抛出FileUriExposedException异常从 Android 7.0 开始,应用间共享文件时,如果使用 file://格式的 Uri,就会抛出 FileUriExposedException。 谷歌官方推荐,使用 FileProvider 来生成一个 content://格式的Uri。
2017-04-06 17:45:33
4170
原创 Android 使用字体图标
将图标做成.ttf字体文件,代替传统的图片资源。效果使用将字体文件导入assets目录 定义字体图标枚举类这里使用的StringDef注解@StringDef({IconFonts.AVATAR, IconFonts.SEND})
2017-03-09 15:17:51
650
原创 设计模式:单例模式
单例模式的定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)结构类图单例模式的通用类图:单例类的实现通常注意三点:单例类的构造函数为私有;提供一个自身的静态私有成员变量;提供一个公有的静
2017-01-10 10:02:53
624
原创 设计模式:原型模式
原型模式的定义:Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。)
2017-01-06 18:00:52
348
原创 设计模式:抽象工厂模式
抽象工厂模式标准定义:Provide an interface for creating families of related or dependent objects without specifying their concrete classes.(为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。)
2017-01-05 16:32:26
290
原创 设计模式:工厂方法模式
最近在学习设计模式,记录下自己的理解。定义工厂方法模式标准定义:Define an interface for creating an object,but let subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses.
2017-01-05 16:28:51
288
原创 栈的应用-四则运算表达式求值
Java实现四则运算表达式求值前言最近在复习数据结构与算法,在栈的应用中了解到计算机计算四则运算表达式的算法。计算机计算四则运算主要分两步:将中缀表达式转化为后缀表达式;将后缀表达式进行运算得出结果。后缀(逆波兰)表达式后缀表达式是一种不包含括号,运算符放在两个运算对象的后面的表示法,比如四则运算表达式9+(3-1)*3+10/2,其后缀表达式为9 3 1 - 3 * + 10 2 / +。
2016-12-25 17:51:18
782
原创 分治法-最大子数组问题
寻找数组A的和最大的非空连续子数组。例如:数组A = {13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7}的和最大的连续子数组为{18, 20, -7, 12},最大和为43,所以{18, 20, -7, 12}就是A的最大子数组;数组{1, -4, 3, -4}的最大子数组为{3}。采用分治策略:将数组分为两个规模
2016-08-24 21:57:44
1968
原创 分治法-归并排序
分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 归并排序算法基本流程:分解待排序的n个元素的序列成各具n/2个元素的两个子序列;使用归并排序递归地排序两个子序列;合并两个已排序的子序列以产生已排序的答案。Java代码实现:class Mergesort
2016-08-15 22:02:40
403
原创 Android View事件分发
在腾讯的面试中被问到父View、子View的点击事件流程,这几天好好学习了一遍。主要参考张鸿洋和郭霖的博客。在触发OnTouch事件的时候Android的GroupView会调用如下三个函数: public boolean dispatchTouchEvent(MotionEvent ev) //用于事件的分发
2016-08-04 16:01:13
378
原创 Android N中使用Java8
今天的Google I/O大会上,发布的Android Studio 2.2,增强了对Java8语言的支持。这几天体验了一下,在此做个记录。 实现了一个Snackbar的Demo,是 Android Support Library 22.2.0 里面新增提供的一个控件,是Toast的加强版。 使用时添加compile语句compile 'com.android.support:design:24
2016-07-15 14:13:35
1489
原创 Android Google地图接入(三)
前面获取到了位置数据,现在实现逆地理编码,根据经纬度数据得到地址。定义IntentService去获取地址在manifest中定义intent service:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mark.maptrackdemo" >
2016-06-07 08:59:19
877
原创 Android Google地图接入(二)
前面完成了地图的显示,现在想要获取位置数据,需要使用到另一个API:Google Play services Location API。 接收位置更新基本流程: 1. 连接LocationServices; 2. 定义位置更新回调; 3. 请求位置更新
2016-06-06 16:00:54
3190
1
原创 Android Google地图接入(一)
最近项目中需要接入Google地图,遇到很多问题,现在记录下来,供以后参考。登录Google API Console,注册Android API密钥(需要翻墙 ~_~) 得到API KEY: 下载Google Play 服务 SDK 即google-play-services_lib(里面包含google-play-services.jar)
2016-06-03 10:54:19
8785
转载 Eclipse闪退/打不开/无法启动/一闪而过
很长时间了,写java、写android都是用的Eclipse。可是突然有一天,当我像往常一样试图打开Eclipse时,Eclipse一飘而过。闪退!!震惊之后我发现自己蛋疼了。搜索各种博客各种空间,发现很多别人能够解决问题的答案对我却不适合。又慢慢查找,后来终于解决,现总结如下(真心不敢说全了,如果下面的方式还不能解决你的问题,希望你一旦解决能告诉我一下,帮我补充这篇博客)。
2016-06-02 16:05:40
359
原创 Android 自定义Notification字体颜色适配
不同系统的通知背景色不同,使用自定义通知使用透明背景色,字体颜色跟随系统的Notification中文字的样式。 在res的values目录下定义styles.xml文件如下:
2016-05-17 17:13:51
5106
原创 Android HttpURLConnection post请求
/** * HttpURLConnection post方法, 参数放置在body中 */public static String postFromServerByHttpClient(String urlString, BaseHttpBody baseBody) { // 每次访问前判断用户是否是登陆状态 String result = null; if (base
2016-05-13 11:30:18
937
原创 Android 上传文件到服务器
/** * 上传图片 */public static String postBitmapToServerByHttpClient(String nsp_svc, String nsp_params, String token, String urlString, File image) { String result = null; String BOUNDARY = UUID.ran
2016-05-13 11:23:42
523
原创 Android values-sw400dp 屏幕适配
最近在开发中遇到屏幕适配的问题:都是使用dp为单位,出来的效果却不一样。 对比手机: 屏幕对比 两个手机屏幕尺寸相同,都是5.7英寸,同样画100dp的线,在屏幕上的长度却不一样,Note5上显示的要短一些。原因为两个手机最小宽度(以dp为单位)不同。怎样计算安卓根据手机ppi设置dpi,分为 120(ldpi)、160(mdpi)、213、240(hdpi)、280、320(xhdpi)、360、
2016-05-13 10:57:57
9212
原创 Android BLE蓝牙通信
为了在app中使用蓝牙功能,必须声明蓝牙权限BLUETOOTH。利用这个权限去执行蓝牙通信,例如请求连接、接受连接、和传输数据。如果想让你的app启动设备发现或操纵蓝牙设置,必须声明BLUETOOTH_ADMIN权限。 在AndroidManifest.xml文件中添加权限:<uses-permission android:name="android.permission.BLUETOOTH" /
2016-05-06 10:10:43
1391
原创 UML类图虚线箭头
依赖关系:假设A类的变化引起了B类的变化,则称B依赖于A。表现在代码上依赖关系一般有如下三种情况:A类是B类中(某个方法)的局部变量。A类是B类中某个方法的参数。A类向B类发送消息,从而影响B类变化。UML图中,用带箭头的虚线,表示类之间的依赖关系:由依赖的一方指向被依赖的一方。 虚箭头线表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类。
2016-04-19 21:56:00
18309
原创 Java强制类型转换
在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。Object x = new Integer(0);Number y = (Number)x; //正确
2016-04-19 20:26:39
397
原创 Android网络图片加载内存溢出(OOM)解决方案
将大量图片直接加载到内存中,是造成OOM的主要原因。 解决方法: 添加本地缓存,不直接从网络加载图片到内存。将图片缓存到本地,每次都从本地获取图片,如果本地没有,再从网络获取。本地缓存开启线程,将网络图片下载到本地SD卡。
2016-03-24 09:46:19
1051
原创 2015第六届蓝桥杯Java软件开发本科B组部分题目和代码
前两天做的蓝桥杯省赛题第二题:立方变自身观察下面的现象,某个数字的立方,按位累加仍然等于自身。1^3 = 1 8^3 = 512 5+1+2=817^3 = 4913 4+9+1+3=17...请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?请填写该数字,不要填写任何多余的内容或说明性的文字。pub
2015-04-13 22:38:46
7924
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人