android
文章平均质量分 94
梦想的转角
这个作者很懒,什么都没留下…
展开
-
彻底搞懂Android文件存储---内部存储,外部存储以及各种存储路径解惑
前言:对于任何一个应用来说,无论是PC端应用还是...转载 2020-04-07 12:52:04 · 2557 阅读 · 0 评论 -
android 消息传递机制
1 源码分析handler构造函数:public Handler() { this(null, false); }public Handler(Callback callback) { this(callback, false); }public Handler(Looper looper) { this(loope...原创 2018-05-03 19:29:35 · 272 阅读 · 0 评论 -
HashMap源码分析(Android 25)
以下代码基于Android 25,对于HashMap,Android 25与Android 26 不同,Android 26与Java8一样的1.源码分析先看其构造函数:public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) t...原创 2018-04-29 22:07:34 · 201 阅读 · 0 评论 -
ListView使用小技巧
1.设置分割线高度和颜色android:divider=”@android:color/darker_gray” android:dividerHeight=”10dp” 2.隐藏滚动条 android:scrollbars="none"3.取消点击效果(5.x以上是波纹)android:listSelector=”@android:color/transparen...转载 2018-05-30 14:22:14 · 130 阅读 · 0 评论 -
RxJava1.x操作符初探之map
我们先来看看map操作符: Observable.just(1, 2, 3) .map(object : Func1<Int, String> { override fun call(t: Int?): String { return t.toString() } ...原创 2019-03-21 15:26:58 · 139 阅读 · 0 评论 -
RxJava1.x中的subscribeOn,observeOn到底做了些什么
注:文中的OnSubscribe1,OnSubscribe2,Observable1等等命名是通过出现的时序来命名的,越大说明越晚出现我们先来举个例子吧:Observable.create(object : Observable.OnSubscribe<String> { override fun call(it: Subscriber<in Stri...原创 2019-03-21 17:57:19 · 596 阅读 · 0 评论 -
Toast初探
总结:首先Toast的make方法主要就是封装TN(Binder)这个对象,这里有几点需要注意Toast默认的是TextView,必须需要有个显示信息的UI,否则会报错当前线程必须有相对应的Looper,否则报错,因为里面的显示机制还是跟Handler有关的,主线程是默认有MainLooper的show方法:其实是系统内部维护着一个队列,通过不断的从该队列中取出ToastRecor...原创 2019-03-23 10:14:13 · 188 阅读 · 0 评论 -
RecyclerView 初探——绘制流程
参考文章:https://www.jianshu.com/p/c52b947fe064总结:RecyclerView它的绘制其实是交给了LayoutManager处理,如果没有设置,则不会测量子View。如果RecyclerView是固定的长宽,在OnMeasure中是不会测量子View的,而是会在onLayout中测量绘制其实会区分正向绘制和倒置绘制绘制的过程是先确定一个瞄点,然...原创 2019-03-26 15:23:36 · 348 阅读 · 0 评论 -
ListView.setAdapter流程以及缓存机制
1. ListView数据显示的流程分析我们往往放入数据就直接这样:listView.adapter=adapter实现机制到底是怎么样的呢,那么我们来看看listView的setAdapter方法是怎么实现的吧:ListView.java public void setAdapter(ListAdapter adapter) { .... requestLayo...原创 2019-03-24 17:23:26 · 5662 阅读 · 1 评论 -
RxJava1.x操作符初探之defer
关于defer这个操作符,RxJava实战是这样解释的:知道有观察者订阅时才创建Observable,并且为每个观察者创建一个全新的Observabledefer操作符会一直等待直到有观察者订阅它,然后它使用Observable工厂方法生成一个Observable。它对每个观察者都这样做,因此尽管每个订阅者都以为自己订阅的是同一个Observable,但事实上每个订阅者获取的是它们自己单独的数...原创 2019-04-19 19:39:07 · 382 阅读 · 0 评论 -
SparseArray源码分析
源码分析首先来看构造函数: public SparseArray() { this(10); } public SparseArray(int initialCapacity) { if (initialCapacity == 0) { mKeys = EmptyArray.INT; mVa...原创 2018-05-01 09:27:48 · 199 阅读 · 0 评论 -
Hashtable分析
1.源码分析首先我们来看构造函数:public Hashtable(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal Capacity: "+ ...原创 2018-04-30 14:39:49 · 182 阅读 · 0 评论 -
android 坐标那点事
MotionEvent坐标:getX:触点相对于所在View左上角的坐标的x值getY:触点相对于所在View左上角的坐标的y值getRawX:触点相对于屏幕左上角的坐标的值getRawY:触点相对于屏幕左上角的坐标的y值View坐标getX()与getY()方法获取的是View左上角相对于父容器左上角的坐标,当View没有发生平移操作时,getX()==getLeft()、getY==getTo...原创 2018-04-11 20:13:37 · 162 阅读 · 0 评论 -
Paint.getTextBounds (String text, int start, int end, Rect bounds)
这个方法就是把text这文字所在的矩形赋到bounds中???原创 2017-06-07 14:03:48 · 534 阅读 · 0 评论 -
View.setActivited()方法
Changes the activated state of this view. A view can be activated or not. Note that activation is not the same as selection. Selection is a transient property, representing the view (hierarchy) the us原创 2017-06-20 10:15:40 · 3398 阅读 · 0 评论 -
android button 一些属性
android:enabled="false" 按钮变灰,不可点击在java文件中设置but.setEnabled(false);原创 2017-06-22 10:32:04 · 549 阅读 · 0 评论 -
java.lang.IllegalStateException:The specified child already has a parent.
就是在fragment中的onCreateView方法中override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater!!.inflate(R.layout.fragment_flight转载 2017-06-12 16:44:11 · 206 阅读 · 0 评论 -
TypedArray实例对象的getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
这三个函数返回的都是绝对尺寸(px???),而不是相对尺寸(dp\sp等)。如果getDimension()返回结果是20.5f,那么getDimensionPixelSize()返回结果就是21,getDimensionPixelOffset()返回结果就是20。如果想详细的了解http://www.cnblogs.com/android-zcq/p/5138368.html转载 2017-06-13 21:08:01 · 2643 阅读 · 0 评论 -
android wifi调试
先用数据线连接好手机,然后在命令行里面定位到adb.exe所在的文件夹然后在命令行里输入ping (手机的ip地址)如下图所示:这说明能连上这个ip,紧接着 输入 adb connect (手机ip地址)如果出现上面这样的结果,说明连接成功,这时候返回android studio 的android monitor可以看到两个一样的驱动,一个是通过wifi连接,一个是通过us原创 2017-07-18 13:50:10 · 350 阅读 · 0 评论 -
SetTextSize(),getTextSize()单位问题
TextView .setTextSize()单位为spTextView.getTextSize()单位为pxPaint.getTextSize(),Paint.setTextSize()单位为px原创 2017-07-24 16:44:07 · 2300 阅读 · 0 评论 -
自定义android偏好界面——Preference解析与自定义
Preference用于android设置偏好界面,像设置界面就是用这个写的,其实就是xml文件,放在res/xml中,方便简单,如果直接用,有时候不符合自己App的风格、主题。下面我们就以android.support.v7.preference.ListPreference为例:上面就是ListPreference的所有属性,这里有个问题,mValueSet又是什么:mValueSet...原创 2018-03-11 16:27:19 · 8791 阅读 · 3 评论 -
android include、merge、viewSub
1.include:说明:提高include里面布局的复用,便于对相同视图内容进行统一的控制管理,提高布局重用性。然而,使用标签总有一些值得我们注意的地方。使用include最常见的问题就是findViewById查找不到目标控件,这个问题出现的前提是在include时设置了id,而在findViewById时却用了被include进来的布局的根元素id.当include有id,且与inc...原创 2018-04-08 10:33:23 · 2962 阅读 · 2 评论 -
android res---color
2018.3.27:Color.RED的值就是0xFFFF0000,一它为例,很明显,这是16进制的数,F代表16,前两个字母表示是透明度,FF--->16*16=256,透明度的范围是0-255色相图:互补色:通过实验得出,已Color.RED为例,它的值为0xFFFF0000,互补色为0xFF00FFFF,这两个值有什么关系呢,除去那表示透明度的两位,其它位的值两个加起来正好是F,自己也...原创 2018-03-27 12:11:55 · 444 阅读 · 0 评论 -
android 中传递Http参数
这问题弄了好久了,网上找各种资料都是没讲清楚没有代码,全是理论的,我就没弄懂,应该是我笨吧,智商有限。。。。在很多书上这节的代码都一样的,说明我还是不会选书,这些书代码都是很早的。。。public class MainActivity extends Activity {private Button but;private TextView textview;@Override原创 2017-02-13 10:14:20 · 444 阅读 · 0 评论