- 博客(60)
- 收藏
- 关注
原创 android 判断是否安装,微信、支付宝、qq、新浪app!
public class IsInstallWeChatOrAliPay { public IsInstallWeChatOrAliPay() { } /** * 检测是否安装支付宝 * @param context * @return */ public static boolean checkAliPayInstall...
2018-06-01 14:18:36
5262
翻译 Handler的一个小例子
Handler mHadler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what == 1){ Bitmap bitmap = (Bitmap) msg.obj;...
2018-02-26 15:23:47
263
原创 android 6.0 更新apk失败解决
一.清单文件内添加如下; <provider android:name="android.support.v4.content.FileProvider" android:authorities="包名.fileProvider" android:exported="false" android:g
2018-01-30 12:01:54
929
翻译 什么是单例模式?
单例模式第一版:public class Singleton { private Singleton() {} //私有构造函数 private static Singleton instance = null; //单例对象 //静态工厂方法 public static Singleton getInstance() { if (insta
2018-01-24 17:29:47
30614
16
转载 Android消息机制Handler
文章出处:http://blog.youkuaiyun.com/qian520aoLooper 死循环为什么不会导致应用卡死,会消耗大量资源吗?主线程的消息循环机制是什么(死循环如何处理其它事务)?ActivityThread 的动力是什么?(ActivityThread 执行 Looper 的线程是什么)Handler 是如何能够线程切换,发送 Mes
2017-11-20 10:43:34
305
原创 一个图片处理工具类
/** * 图片处理工具类 */public class BitMapUtils { /** * 对指定路径图片压缩改变其文件大小 * @param file * @param bitmap */ public static void compression(File file,Bitmap bitmap){ Buff
2017-10-26 15:42:57
271
翻译 java之观察者模式
观察者模式(Observer)包括这个模式在内的接下来的四个模式,都是类和类之间的关系,不涉及到继承,学的时候应该 记得归纳,记得本文最开始的那个图。观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,
2017-08-25 13:51:22
239
翻译 java之备忘录模式
备忘录模式(Memento)主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,不能修改等操作。Original类是原始类,里面有需要保存的属性value及创建一个备忘录类,用来保存value值。M
2017-08-24 17:49:14
230
翻译 java之桥接模式
桥接模式(Bridge)桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我
2017-08-24 17:00:16
210
翻译 java之外观模式
外观模式(Facade)外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口(我们以一个计算机的启动过程为例)我们先看下实现类:public class CPU { public void startup(){
2017-08-24 15:33:07
195
翻译 java之代理模式
代理模式(Proxy)其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。public interface
2017-08-24 15:23:56
208
翻译 java之装饰模式
装饰模式(Decorator)顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourceable { public void method();
2017-08-24 15:16:49
254
翻译 java之单例模式
第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance ==
2017-08-24 13:54:41
219
原创 java之工厂模式
1.工厂方法模式 工厂模式分为普通工厂模式;如果传递的字符串出错,则不能正确创建对象(会报红) 多个工厂方法模式;提供多个工厂方法,分别创建对象(普通模式的升级版,不会爆红) 静态工厂方法模式;多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可(豪华版)。 工厂模式主要是有接口类,实现接口类,以及一个工厂管理类组成; //
2017-08-23 15:15:58
216
翻译 Android 组件开发 以及跨module跳转
一 组装组件开发1.创建几个module和一个library所有module都添加library依赖图表结构如下图;2.组件开发架构图如下,看着图是不是觉得有道理然后开始分析;3.两个module需要两个身份,一个是dubug模式下单独运行;一个身份是作为library成为主项目的依赖来打包测试并且上架;4,ModuleA和ModuleB是相对独立的业务模块,可以分别进行开发,编译时只编译
2017-08-21 15:11:55
3865
转载 studio快捷键
*Log日志的输出打印 直接就是loge logm logr logt * 代码提示的快捷键 ctrl+alt+space * 代码上下行移动 ctrl_shift+上下键 * 复制当前的行代码到下一行快捷键是ctrl+D * 剪切ctrl+X 粘贴ctrl+V * 删除一行代码ctrl+Y * 类中的方法之间快速的移动alt+上下键光标会在方法之间移动 * 选中
2017-08-18 11:49:41
198
转载 自定义View中 dp sp与px转化
private int dp2px(int value) { float v = getContext().getResources().getDisplayMetrics().density; return (int) (v * value + 0.5f); } private int sp2px(int value) { flo
2017-08-10 12:04:57
1366
原创 EditText 光标位置 颜色设置
一 EditText光标本来位置是左侧居中的,如想改变位置如下; android:gravity="top|left"二 EditText光标颜色也可以改变; 1.res-drawable 创建edittext_cursor_color.xml <shape xmlns:android="http://schemas.android.com/apk/res/android"
2017-08-10 11:25:14
421
原创 ListView相关设置
一。 《1》 //去掉右侧滑动指示器 android:scrollbars="none" 《2》 //每条item之间间距 android:dividerHeight="20dp" 《3》 //去掉item之间分割线 android:divider="#00000000" 二*有时间把listview添加头部也加上(未完待续)
2017-08-09 22:20:04
201
原创 通过application get set 数据
1.参考application内容public class application extends Application { private static HashMap HashMap; public static HashMap getHashMap() { return HashMap; } public static void set
2017-08-09 22:12:35
227
翻译 二阶贝塞尔曲线部分理解
/** * Author : 黄家驹 time : 2017/8/1. * 此乃二阶贝塞尔曲线的部分理解,目前不具有了解三阶贝塞尔曲线能力;往后会更新三阶贝塞尔曲线; */public class MyBezier extends View { private Paint paint; private Path path; private Point starp
2017-08-01 19:57:01
428
原创 自定义不同颜色点赞图片被点击之后动画缩放效果
public class PeriscopeLayout extends RelativeLayout { private Drawable[] drawables; private int imagHeight;//赞的高度 private int imageWidth; LayoutParams layoutParams; private Random
2017-08-01 19:43:23
374
原创 点九图使用
1.点九图使用,新版AS在SDK中tools中已经找不到点九图编辑器了,被融合到了AS内部了,使用起来更加方便了; 经本人测试点九图只能放在drawble文件内,放在mipmap中是找不到文件名的,后缀名一定不能改必须是xx.9.png; 使用流程将要制作的图片放入drawble文件内,右键点击Create 9-Patch file;如图;会生成一个xx.9.png图片,双击打开就可以编辑
2017-07-31 17:52:05
2550
转载 Android多线程及异步处理问题详细探讨
1、问题提出 1)为何需要多线程? 2)多线程如何实现? 3)多线程机制的核心是啥? 4)到底有多少种实现方式? 2、问题分析 1)究其为啥需要多线程的本质就是异步处理,直观一点说就是不要让用户感觉到“很卡”。 eg:你点击按钮下载一首歌,接着该按钮一直处于按下状态,那么用户体验就很差。 2)多线程实现方式implements Runnable 或 extends Thread
2017-07-31 15:13:49
247
转载 HashMap遍历的两种方式,推荐使用entrySet()
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val =
2017-07-31 14:48:35
215
原创 MD5加密
1.首先封装MD5工具类如下;/** * MD5英文全称“Message-Digest Algorithm 5”,翻译过来是“消息摘要算法5”,由MD2、MD3、MD4演变过来的,是一种单向加密算法,是不可逆的一种的加密方式。 * * MD5应用场景: * 1.一致性验证 * 2.数字签名 * 3.安全访问认证 */public class Md5Util {
2017-07-31 13:52:16
312
原创 TreeMap转换字符串
1.下边是一个map形式的key,values转换成指定字符串, TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap Mapmap = new TreeMap<>(); map.put("name","黄家驹"); map.put("age","18"); map.put("sex","
2017-07-31 13:45:37
4151
原创 自定义组装控件
1.首先创建一个setting_view.xml来设置自定义样式<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:
2017-07-30 17:33:25
270
原创 代码组装Json字符串
//创建最外层对象 JSONObject obj = new JSONObject(); //创建一个数据集合 JSONArray jsonArray = new JSONArray(); //创建一个内部添加对象 JSONObject jsonObject = new JSONObject(); tr
2017-07-30 17:19:22
589
原创 Retrofit+Rxjava请求工具类
一;此乃一个retrofit+Rxjava实现网络请求封装的一个工具类; 下边是参考依赖; compile 'io.reactivex.rxjava2:rxjava:2.0.8' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.squareup.retrofit2:retrofit:
2017-07-25 15:31:44
231
原创 极光推送jcenter 自动集成
一,本来做极光推送我一直习惯性的复制粘贴导入,这一次也这样做了,我搭档不答应了,一脸的不愿意,让我很尴尬;我说我看看官方文档改吧,他说不用了,以后注意点; 然后我就写了个demo,jcenter自动集成。 1.首先按文档的来, 确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持。(新建project默认配置就支持,我看了看Stud
2017-07-25 15:18:16
754
原创 RxBus实现页面值的回传
一,我本想着研究RxBus如Intent那样定向传值,但是技术有限或者是本就不能实现,我只做出了页面的回传值,比如第a1页面跳转到a2页面,a2页面返回的时候带回需要的值。 1.首先添加依赖, compile 'io.reactivex.rxjava2:rxjava:2.0.8' compile 'io.reactivex.rxjava2:rxandr
2017-07-25 11:57:59
706
原创 android 下载图片到本地并显示
public class MainActivity extends AppCompatActivity implements View.OnClickListener { protected Button butLoading; protected Button butDisplay; protected ImageView ima; private
2017-07-11 15:13:16
910
转载 As混淆详解
#忽略警告,避免打包时某些警告出现-ignorewarnings#指定压缩级别-optimizationpasses 5#包名不混合大小写-dontusemixedcaseclassnames#不跳过非公共的库的类-dontskipnonpubliclibraryclasses-dontskipnonpubliclibraryclassmembers#不优化输入的类文件-don
2017-07-10 16:52:10
1737
原创 Retrofit 上传文件
private void uploadImg(File file) { //时间戳 long time = System.currentTimeMillis(); //参数以map形式组装起来 Map map = new TreeMap<>(); map.put("orgId", SharePrefere
2017-07-07 14:55:17
180
翻译 进度条ProgressBar样式设计
Android 进度条的样式 例1:(默认样式(中等圆形))Xml代码 android:id="@+id/progressBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 例2:(超大圆形)Xml代码
2017-07-07 14:30:33
1200
转载 Android文件各种存储路径的比较
1、File cacheDir = context.getCacheDir();应用内部存储空间(数据文件私有)文件存储到这个路径下,不需要申请权限,当应用被卸载的时候,目录下的文件会被删除。需要注意的是,这个文件的目录和应用的存储位置有关,当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当数据存储到这个目录的时候,用相对路径。这个目录和getFilesDir()目录最
2017-07-07 14:18:34
428
转载 百度定位集成
1、建议先阅读百度地图官方的继承指南,针对了Eclipse和Android Studio。百度官方集成指南2、下载百度地图SDKAndroid SDK v4.1.1下载有两种:1、一键下载(下载所有百度地图SDK功能)2、自定义下载(结合自身需求、自定义选择业务功能,打包下载所选功能开发包)下载完成之后会得到这样的文件
2017-07-04 01:43:03
398
原创 极光推送轻松集成
极光推送集成(一)首先下载SDK,解压得到jpush-android-release-3.0.6文件夹目录如下图;777 1.接着把文件libs内文件全部复制到项目中的libs内,然后在app-gradle内粘贴如下图代码; 777做完这些然后要在project-Structure-app添加Jpush依赖如下图;7772.把资源文件res内文件原封不动地复制到
2017-07-03 20:41:36
408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人