- 博客(21)
- 收藏
- 关注
原创 集成Tinker后的坑 , noclassdeffounderror异常
在集成Tinker时遇到的坑: 在build.gradle当中为了方便在一般测试时方便给 apply from: 'tinker.gradle' 这句代码加了判断 , 不走这行代码 , 但Application的改造是按照Tinker集成的 , 结果发现在Android5.0以下手机中运行发现在ApplicationLike类当中报noclassdeffounderror 异常
2017-02-16 09:28:03 1724
原创 Acitivty嵌套Fragment时 调用recreate的坑
Activity -->(继承) BaseActivity Fragment -->)(继承) BaseFragment Activity中嵌套Fragment 当点击Fragment中的按钮调用 getActivity().recreate(); 方法时 他们的OnCreate调用顺序如下: BaseFragment: onCreate: OutFragment04: on
2016-12-15 11:17:01 1496
原创 rxjava实现相关逻辑
Observable.just(new Person(5)) .map(new Func1() { @Override public Integer call(Person s) { Log.i("TAG", "map"+Thread.cu
2016-11-17 09:27:48 543
转载 Android CountDownTimer倒计时器的使用
在平时我们编程的时候,经常会用到倒计时这个功能,很多人不知道Android已经帮封装好了一个类,往往都自己写。现在发现了这个类,大家共享一下: 在一个TextView不断显示剩下的时间,代码如下: private TextView vertifyView; private CountDownTimer timer = new CountDownTimer(10000, 1
2016-11-15 11:53:46 643
原创 Day0823_将音乐库中的音乐在Service中异步加载, 播放音乐并设置到通知栏
MyService类 package com.kangdi.day0823_service_hunhe; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import and
2016-08-23 20:46:01 518 1
原创 图解onInterceptTouchEvent , onTouchEvent及onTouch区别
onInterceptTouchEvent : intercept 词意为拦截, 此事件只有ViewGroup才有(例如LinearLayout),是从父布局开始一步步传到子布局 , 直到拦截(也就是返回值为true)或者传到没有此事件的view(例如TextView); 返回值为false 则继续传,返回值为true , 则执行该控件中的onTouchEvent 或 onTouch方法.
2016-08-14 01:32:42 4504 3
转载 android获得屏幕高度和宽度四种方法
方法一: WindowManager wm = (WindowManager) this .getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDisplay().getHeight();
2016-08-12 20:21:30 953 1
转载 利用getLayoutParams()方法和setLayoutParams()方法
利用getLayoutParams()方法 和 setLayoutParams()方法 重新 设置 控件的 布局, 1、首先利用getLayoutParams()方法,获取控件的LayoutParams。 eg:LayoutParamslaParams=(LayoutParams)imageView.getLayoutParams(); 2、设置该控件的layoutPa
2016-08-12 20:14:29 1073
转载 Android Canvas绘图详解(图文)
大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、 BitmapDrawable和TransitionDrawable等。以图形处理来说,我们最常用到的就是在一个View上
2016-08-10 11:53:21 695 1
转载 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
setHomeButtonEnabled这个小于4.0版本的默认值为true的。但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击 false 不可以点击。 actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应Action
2016-08-08 19:11:59 324
转载 android绘图Paint.setAntiAlias()和Paint.setDither()方法的作用
在自定义View中,这两个Paint.setAntiAlias()和Paint.setDither()方法用的很多,都只有一个boolean值,作用大家未必清楚,今天抽了点时间研究下,终于搞清楚了,希望给大家点帮助! Paint.setAntiAlias() 该方法作用是抗锯齿,什么意思呢,我们看下效果图,就知道了 左边是没有这只抗锯齿的,右边是设置了抗锯齿的,边界明显变模糊
2016-08-07 16:34:12 396
转载 Android文本的测量和绘制
翻译与 Chris Banes的博客 原文地址 如果你想手动在Android Canvas上画些什么东西,你最好从绘制文本开始。 文本绘制之前,你需要知道测量文本的绘制位置,计算文本X/Y轴的位置。
2016-08-07 15:40:32 358
转载 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
setHomeButtonEnabled这个小于4.0版本的默认值为true的。 但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击 false 不可以点击。 actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DI
2016-08-06 22:24:08 694
转载 ViewStub
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl
2016-08-01 00:05:51 288
转载 适配器的当中getView方法调用
View在Draw的时候分成两个阶段:measure和layout,在measure阶段时主要就是为了计算两个参数:height和width。而且要注意的是,这是个递归的过程,从顶向下,DecorView开始依次调用自己子元素的measure。计算完成这两个参数后就开始layout,最后再是draw的调用。 对于ListView,当然每一个Item都会被调用measure方法,而在这个过程中
2016-07-31 12:37:34 553
转载 Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数
Fragment在Android3.0开始提供,并且在兼容包中也提供了Fragment特性的支持。Fragment的推出让我们编写和管理用户界面更快捷更方便了。 但当我们实例化自定义Fragment时,为什么官方推荐Fragment.setArguments(Bundle bundle)这种方式来传递参数,而不推荐通过构造方法直接来传递参数呢? 为了弄清这个问题,我们可以做一个测试,分别
2016-07-30 14:35:24 312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人