Android Support Library
2017-05-03 16:13
447 查看
com.android.support:support-annotations:23.1.1
Nullness注解
Nullable 作用于函数参数或者返回值,标记参数或者返回值可以为空。NonNull 作用于函数参数或者返回值,标记参数或者返回值不可以为空。如果违反,会出现警告
资源类型注解
AnyRes: 标记整型值是 任何一种资源类型AnimatorRes: 标记整型值是 android.R.animator 类型
AnimRes: 标记整型值是 android.R.anim 类型
ArrayRes: 标记整型值是 android.R.array类型
AttrRes: 标记整型值是 android.R.attr 类型
BoolRes: 标记整型值是 布尔类型
ColorRes: 标记整型值是 android.R.color类型
DrawableRes: 标记整型值是 android.R.drawable类型
FractionRes: 标记整型值是 fraction类型(这个比较少见,这种类型的资源常见于Anumation Xml中,比如50%p,标识占parent的50%)
IdRes: 标记整型值是 android.R.id类型
IntegerRes: 标记整型值是 android.R.integer类型
InterpolatorRes: 标记整型值是 android.R.interpolator类型(插值器)
LayoutRes: 标记整型值是 android.R.layout类型
MenuRes: 标记整型值是 android.R.menu类型
PluralsRes: 标记整型值是 android.R.plurals类型,表示复数字符串类型
RawRes: 标记整型值是 android.R.raw类型
StringRes: 标记整型值是 android.R.string类型
StyleableRes: 标记整型值是 android.R.styleable类型
StyleRes: 标记整型值是 android.R.style类型
TransitionRes: 标记整型值是 transition类型(过渡?)
XmlRes: 标记整型值是 android.R.xml类型
类型定义注解
@IntDef// 告知编译器不要在.class文件中存储注解数据 @Retention(RetentionPolicy.SOURCE) // 定义可以接受的常量 // flag用来识别函数参数或者返回值是否符合某一种模式 @IntDef(flag=true, value={ A, B, C }) public @interface NavigationMode{} public static final int A =0; public static final int B =1; public static final int C =2; @NavigationMode public abstract int getNavigationMode(); public abstract void setNavigationMode(@NavigationMode int mode); // 调用 setNavigationMode(ActionBar.A | ActionBar.B);
线程注解
@UiThread 标记运行在UI线程。一个UI线程是Activity运行所在的主窗口,对于一个应用而言,可能存在多个UI线程,每个UI线程对应不同的主窗口。@MainThread 标记运行在主线程,一个应用只有一个主线程,主线程也是UI线程。
@WorkerThread 标记运行在后台的线程
@BinderThread 标记运行在binder的线程
一般情况下,使用@MainThread来注解生命周期相关函数,使用,@UiThread来注解视图相关函数。一般情况下 @MainThread可与@UiThread互换
RGB颜色值注解
@ColorIntpublic void setTextColor(@ColorInt int color){ mTextColor = ColorStateList.valueOf(color); updateTextColors(); }
值范围注解
@Size: 对于类似数组、集合、字符串之类的参数,可以使用@Size注解来标识这些参数的大小@Size(min=1) // 可以表示集合不能为空 @Size(max = 23) // 可以表示字符串的最大长度为23 @Size(2) // 可以表示集合的个数为2 @Size(multiple=2) // 可以表示数组大小是2的倍数
@IntRange: 参数类型是int 或者 long,用法如下
public void setAlpha(@IntRange(from=0, to= 255) int alpha){...}
FloatRange: 参数类型为 float或者double
public void setAlpha(@FloatRange(from=0.0, to= 1.0) float alpha){...}
权限注解
RequiresPermission@RequiresPermission //声明一个权限 @RequiresPermission(anyOf={A,B}) //需要声明至少一个权限 @RequiresPermission(allOf={A,B}) //需要声明所有权限 @RequiresPermission(android.Mainifest.BLUTTOOTH)//Intent权限注解 public static final String ACTION_REQUEST_DISCOVERABLE="android.bluetooth.adapter.action.REQUEST_DISCOVERABLE"; // 对于ContentProvider 相关的权限,可能同时需要读写这两个操作 @RequiresPermission.Read(@RequiresPermission(READ_HISTORY_BOOKMARKS)) @RequiresPermission.Write(@RequiresPermission(WRITE_HISTORY_BOOKMARKS)) public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");
重写函数注解
@CallSuper 允许调用者重写函数,但同时要求重写函数的时候需要调用被重写的函数,即调用 super(),否则代码可能会错误,这时可以用 这个注释来提醒开发者。@CallSuper protected void onCreate(@Nullable Bundle savedInstanceState){...};
返回值注解
@CheckResult@VisiableForTesting
@VisiableForTesting单元测试中不可见的类、函数或变量 对测试可见@Keep
@Keep 用来标记在Proguard混淆过程中 不需要混淆的类或方法。 !!!!!!!很实用com.android.support:percent:23.2.0
百分比布局
PercentFrameLayoutPercentRelativeLayout
PercentLayoutHelper(百分比逻辑实现)
新增的配置属性
layout_widthPercent: 用百分比表示宽度layout_heightPercent: 用百分比表示高度
layout_marginPercent: 用百分比表示间隔
layout_marginLeftPercent: 用百分比表示左间隔
layout_marginTopPercent: 用百分比表示上间隔
layout_marginRightPercent: 用百分比表示右间隔
layout_marginBottomPercent: 用百分比表示下间隔
layout_marginStartPercent: 用百分比表示距离第一个view 的间隔
layout_marginEndPercent: 用百分比表示距离最后一个view的间隔
layout_aspectRatio:用百分比来标识view的宽高比
com.android.support:support-v4:23.1.1
略com.android.support:support-v13:23.1.1
com.android.support:appcompat-v7:23.1.1
略com.android.support:design:23.1.1
com.android.support:gridlayout-v7:23.1.1
com.android.support:mediarouter-v7:23.1.1
com.android.support:cardview-v7:23.1.1
卡片view 可圆角 可带阴影。不向下兼容(用于图片带圆角的时候)com.android.support:palette-v7:23.1.1
com.android.support:recyclerview-v7:23.1.1
略com.android.support:leanback-v17:23.1.1
相关文章推荐
- Android中支持库(Support Library)详解
- ADT-20 问题 android support library
- [android ui]侧边栏(使用Support Library 4提供的扩展组件)
- Android各个support library特征和区别(官方文档)
- Android各个support library特征和区别(官方文档)
- 【翻译】Android Support Library(一)
- 关于 Android 程序使用 Support Library 属性的几点说明
- 提高Android Support Library 的稳定性
- [wordpress搬家]Android 基础 — 经常打交道的Support Library
- ADT-20 问题 android support library
- 提高Android Support Library 的稳定性
- Android support library 不能创建项目 的问题解决办法
- Android项目添加Support Library
- Android 侧边栏(使用Support Library 4提供的扩展组件)
- 新建项目出现android support library问题解决
- 【Android Training - 03】使用Fragments建立动态的UI [ Lesson 1 - 使用Support Library ]
- Android中支持库(Support Library)详解
- 在Maven项目中使用Android Support Library
- 【翻译】Android Support Library(一)
- Android Support Library更新到v22.1之AppCompat新特性