0%

前言

在自定义View的构造方法中使用getWidth()getHeight()返回值为0,
因为过早的使用了这些方法,也就是说在这个view被加入到rootview之前你就调用了这些方法,返回的值自然为0。

阅读全文 »

定义、使用属性

首先在res/values/attrs.xml文件夹(没有的话自己创建一个)中设置好自定义的属性。
注意,因为Toolbar中已经有了titleTextColor的属性,如果我们进行声明,则会编译不通过。
所以这里进行了引用,也就是不写format。

阅读全文 »

自定义View首先需要测量View的大小

自定义View首先需要测量View的大小,在ViewonMeasure()方法中进行。
View的大小分为三种类型,测量模式也有三种

  • 自适应(wrap_content),对应at_most(最大值模式),代表的是最大可获得的空间
  • 固定(100dp),对应Exactly(精确值模式),代表的是精确的尺寸;
  • 填充父View(match_parent),对应Exactly(精确值模式),代表的是精确的尺寸;
  • 还有个UnSpecified(未指定模式),不指定View的大小,想多大就多大,用于scrollView等类。
阅读全文 »

前言

本文适用范围:已参加项目开发的人

写这篇文章的目的是为方便地对代码进行管理,让整个团队的代码规范化。这里的部分规定可能和你在其他地方看到的不一样,但还是请遵守这些规则。

编码规范是泯灭程序猿个性的一项制度,但对于整个团队而言,却是一件利器
-《App 研发录》

阅读全文 »

dimens.xml

经常需要使用到一些尺寸,这里就记录一下,方便拷贝。
直接在values中dimens.xml文件中粘贴即可
使用方法,如:Android:TextSize="@dimens/offset_2dp"

阅读全文 »

自定义ViewGroup中,需要用LayoutParams对子View进行布局

1
2
3
mLeftParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
mLeftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, TRUE);
mLeftParams.addRule(RelativeLayout.RIGHT_OF, R.id.leftView);
阅读全文 »