自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 ImageView 的 ScaleType 的表现及原理探究

提出问题当谈到 Android 中的 ImageView 时,我们总不能避免 ScaleType 这个属性,这个属性在图片资源和 View 尺寸不一样的时候经常用到,用于对图片资源进行自适应的展示。所以,我们先来看看结果,看看 ScaleType 在多种情况下的实际表现。上面这张图。黄色区域的部分是 ImageView 的控件大小,每一个 ImageView 的大小都是200 × 200,然后对于左

2017-07-01 20:26:23 1211 1

原创 Google 的android-architecture,todo-mvp解析

对于 Android 上的软件架构,开发者不断地在自己造轮子,对于 MVC 、MVP、MVVC 有着各种各样的理解, 网上相关的文章也是大相径庭,所以我们的真主 Google 教父,在 GitHub 有一个开源项目 android-architecture,里面对 Android 的软件架构做出了一些官方解释,并在不同的分支上分别做了很多不同的微小贡献。Google 的这个开源项目 android-

2017-04-12 09:49:12 538

原创 如何获得View与ViewGroup建立View层级关系时的回调接口?

提出问题 在自定义 View 的时候,我们经常要往一个自定义的 ViewGroup 中添加子 View 。但是如何监听子 View 被添加到该 ViewGroup 中呢,或者我们需要监听一个 View 是什么时候添加到父 ViewGroup 中的,相应的回调在哪里。  所以这就是我们今天的问题,有两个点,分别是: 1:如何监听 ViewGroup 添加子 View ? 2:对于一个 Vi

2017-02-05 10:49:15 3205

原创 从TabLayout#setTabMode开始谈绘制(Measure)流程

Android的Measure过程作为View的三部曲(measure,layout,draw)的第一步,承担了View到底宽高是多少这个问题。笔者之前也看过很多文章,但是对其中的关键原理并不完全知晓,大多数博文一上来就花费大量篇幅来描述MeasureSpec这个类,那么这个类到底是做什么呢?它的几种模式又分别是什么意思呢。我们就来看看View的measure过程中,Android系统是如何解决Vi

2016-12-12 08:58:58 1301

原创 FragmentPageAdapter#notifyDataSetChanged做了什么?

这是Android源代码分析第二篇,第一篇写的太烂了,真的是烂,烂到我自己都不想去改。  所以以后看源码啊,还得看继承关系比较浅的……不然分分钟看死你。接下来是正文。 我们在使用Fragment+ViewPager来实现滑动页卡的需求时,避不开一个类,就是FragmentPageAdapter(出自android.support.v4.app扩展包),这个类用来管理ViewPager中的Fr

2016-12-03 11:10:53 557

原创 Android中简易实现生产者和消费者问题

1

2016-11-21 22:17:52 2245

原创 LayoutInflater.inflater做了什么?

本文分析了从LayoutInflater类的inflate函数开始,到涉及jni的AssetManager类结束,中间到底做了什么。  本文的源码均是基于Android6.0(API=23)Part 1 首先,为了搞清楚这一切,我们从最深处往外探寻。  首先来看位于Resources类的getvalue方法,逻辑也不复杂,方法具有三个参数。public void getValue(@AnyRes

2016-10-31 09:00:04 969

原创 Java回调机制(以Android事件监听器为例)

Java的设计模式中有回调这个机制,在Android开发中我们也会经常用到回调机制。下面就通过一些小例子来说明什么是回调。 假如我们要实现这个这样一个功能。MainActivity中由一个Fragment和一个ViewPager构成,Fragment中有一系列按钮,通过按下这些按钮可以来切换ViewPager的当前页卡,一般我们会这么实现。首先在Fragment中获得MainAct

2016-02-25 17:50:40 1781

原创 使用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 7883

原创 Android Studio 导入GitHub项目的注意事项

本文具有个人观点,仅供参考。 Android Studio 现在在越来越多的情况下使用,作为Google的亲儿子,具有绚丽的界面和很多新功能,GitHub上很多优秀的开源项目都是使用AS开发的,造成导入Eclipse后很多奇怪的问题,楼主也在这上面花费了太多的时间过渡。 在Github上下载开源项目之后,判断是不是AS开发最简单的方法就是查看目录中是否有build.gradle文件。在

2015-02-11 00:08:14 775

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除