
Android开发
孤立的电线杆
这个作者很懒,什么都没留下…
展开
-
使用JAVA代码实现Android布局(一)RelativeLayout
通常我们使用XML来书写Android的图形界面,XML虽然编写方便,但是在某些情况下不如JAVA代码灵活,所以在某些环境下还是必须使用JAVA代码来编写界面。我们以下XML代码为例,编写相应的JAVA代码。 <RelativeLayout android:id="@+id/drawer_info" android:layout_width="match_par原创 2016-01-03 19:14:19 · 8076 阅读 · 0 评论 -
Java回调机制(以Android事件监听器为例)
Java的设计模式中有回调这个机制,在Android开发中我们也会经常用到回调机制。下面就通过一些小例子来说明什么是回调。 假如我们要实现这个这样一个功能。MainActivity中由一个Fragment和一个ViewPager构成,Fragment中有一系列按钮,通过按下这些按钮可以来切换ViewPager的当前页卡,一般我们会这么实现。首先在Fragment中获得MainAct原创 2016-02-25 17:50:40 · 1864 阅读 · 0 评论 -
LayoutInflater.inflater做了什么?
本文分析了从LayoutInflater类的inflate函数开始,到涉及jni的AssetManager类结束,中间到底做了什么。 本文的源码均是基于Android6.0(API=23)Part 1 首先,为了搞清楚这一切,我们从最深处往外探寻。 首先来看位于Resources类的getvalue方法,逻辑也不复杂,方法具有三个参数。public void getValue(@AnyRes原创 2016-10-31 09:00:04 · 1008 阅读 · 0 评论 -
FragmentPageAdapter#notifyDataSetChanged做了什么?
这是Android源代码分析第二篇,第一篇写的太烂了,真的是烂,烂到我自己都不想去改。 所以以后看源码啊,还得看继承关系比较浅的……不然分分钟看死你。接下来是正文。 我们在使用Fragment+ViewPager来实现滑动页卡的需求时,避不开一个类,就是FragmentPageAdapter(出自android.support.v4.app扩展包),这个类用来管理ViewPager中的Fr原创 2016-12-03 11:10:53 · 591 阅读 · 0 评论 -
Android中简易实现生产者和消费者问题
1原创 2016-11-21 22:17:52 · 2313 阅读 · 0 评论 -
从TabLayout#setTabMode开始谈绘制(Measure)流程
Android的Measure过程作为View的三部曲(measure,layout,draw)的第一步,承担了View到底宽高是多少这个问题。笔者之前也看过很多文章,但是对其中的关键原理并不完全知晓,大多数博文一上来就花费大量篇幅来描述MeasureSpec这个类,那么这个类到底是做什么呢?它的几种模式又分别是什么意思呢。我们就来看看View的measure过程中,Android系统是如何解决Vi原创 2016-12-12 08:58:58 · 1389 阅读 · 0 评论 -
如何获得View与ViewGroup建立View层级关系时的回调接口?
提出问题 在自定义 View 的时候,我们经常要往一个自定义的 ViewGroup 中添加子 View 。但是如何监听子 View 被添加到该 ViewGroup 中呢,或者我们需要监听一个 View 是什么时候添加到父 ViewGroup 中的,相应的回调在哪里。 所以这就是我们今天的问题,有两个点,分别是: 1:如何监听 ViewGroup 添加子 View ? 2:对于一个 Vi原创 2017-02-05 10:49:15 · 3331 阅读 · 0 评论 -
ImageView 的 ScaleType 的表现及原理探究
提出问题当谈到 Android 中的 ImageView 时,我们总不能避免 ScaleType 这个属性,这个属性在图片资源和 View 尺寸不一样的时候经常用到,用于对图片资源进行自适应的展示。所以,我们先来看看结果,看看 ScaleType 在多种情况下的实际表现。上面这张图。黄色区域的部分是 ImageView 的控件大小,每一个 ImageView 的大小都是200 × 200,然后对于左原创 2017-07-01 20:26:23 · 1337 阅读 · 1 评论