1、adjustViewBounds=“true”
当 API>= 21 时 ImageView 会根据图片高度自适应,但<21则不会
2、FrameLayout
低版本 (API <14),FrameLayout 的wrap_content只按最小的view,同时如果不设置layout_gravity,margin属性无效果;>=14 根据最大的view调整
设置background时,如果是在9patch 和 xml定义的shape间切换,shape中要显示定义padding,否则会出现设置9patch后在设回shape,padding无法重置
3、ColorDrawale
当 API >= 17时,才实现mutate() 方法,小于 17无效,也就是改动一个ColorDrawable对象会影响所有使用地方。
当 API >= 20时,才实现setColorFilter()。
使用ShapeDrawable代替。
4、启动App Notifications 设置界面 (API >= 21)
private static boolean isIntentAvailable(Context context, Intent intent) {
final PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
if (apiLevel >= 21) {
Intent intent = new Intent();
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("app_uid", context.getApplicationInfo().uid);
intent.putExtra("app_package", packageName);
if (isIntentAvailable(context, intent)) {
context.startActivity(intent);
}
}