Android 开发技巧集合

来源:互联网 发布:grid.base.js 编辑:程序博客网 时间:2024/04/30 11:26
  • TextUtils.isEmpty() - 常用的一个验证字符是否为空
  • Html.fromHtml() - 快速的转化为HTML,执行速度不是太空,不适合大篇幅 
  • EditText.setError() - 对用户名,邮箱,手机什么的验证,会弹出一个popupwindow,效果很好
  • Build.VERSION_CODES - 没个版本存在着差异,兼容时常用到的
  • Log.getStackTraceString() - 日志通常我们只是打印,但有时需要保持到数据库或提交。
  • LayoutInflater.from() - 大家应该常用它动态的加载布局,它简化了一系列getSystemService()调用的简单工具
  • ViewConfiguration.getScaledTouchSlop() - 使用ViewConfiguration中提供的值以确保所有触摸交互都是统一的
  • PhoneNumberUtils.convertKeypadLettersToDigits - 字母转化为数字,例如T9输入法,比如啊,a,b,c都会转化为2
  • ContextThemeWrapper - 在运行时去修改主题。
  • Space - 很棒的分隔符,4.0+使用
  • ValueAnimator.reverse() - 很流畅的去取消正在运行的动画。
  • DateUtils.formatDateTime() - 格式化时间,我们可能不太常用。
  • AlarmManager.setInexactRepeating - 通过闹钟分组来省电,就如在不唤醒休眠下的间隔中有10个闹钟,在唤醒后将合并为一个,所以可以节约资源。
  • Formatter.formatFileSize() - 就是转化文件大小,KB M G等之间。
  • ActionBar.hide()/.show() - 如名,就是控制actionBar的显隐。
  • Linkify.addLinks() - 给Textview加上链接。
  • StaticLayout - 在自定义View中渲染文字很实用。
  • Activity.onBackPressed() - 简单的管理后退操作,比如我们的Double Back press to exit
  • GestureDetector - 用来监听动作事件和相关监听事件,如点击,滚动,滑动,比自己实现系统的一些事件更简单
  • DrawFilter - *可以让你在没有调用Draw的情况下调用Canvas,可以在创建自定义View时调用DrawFilter(For example, you could create a custom View which sets a DrawFilter which anti-aliases the draws of the parent View.不明白)
  • ActivityManager.getMemoryClass() -获取剩余内存
  • ViewStub - 这个应该也很多人用过,站位的View,之后可载入一个布局
  • DisplayMetrics.density - 常用来获取设备宽高
  • Pair.create() - *看半天也没明白是在干嘛
  • UrlQuerySanitizer - *译文可能是对URL进行检测(但还是不太懂事干嘛)
  • Fragment.setArguments - Fragment间传递参数
  • DialogFragment.setShowsDialog() - 显示一个DialogFragment,这里可以控制它是否作为一个dialog
  • FragmentManager.enableDebugLogging() - 当你检测fragment状态时使用
  • LocalBroadcastManager - 这要比全局的broadcast更加安全,简单,快速。
  • PhoneNumberUtils.formatNumber() - 电话号码的格式化
  • Region.op() - 对比两个渲染之前的区域,如果你有两条路径,怎么知道它是否会重叠呢,使用这个
  • Application.registerActivityLifecycleCallbacks - *不懂,从名字你应该可以看出点所以然
  • versionNameSuffix - 这个gradle设置为了方便的定义版本名,如当前版本是Debug还是Rrelease
  • CursorJoiner - 如果你只使用一个数据库的话,那么使用SQL的join就可以了,但你如果你使用了两个独立的CursorJoiner 那么CursorJoiner就很实用了。
  • Genymotion - 这是模拟器,不是类,非常快的模拟器,可能比你手机还快
  • -nodpi - 保持显示一致,这里边的不会做自动缩放。
  • BroadcastRecevier.setDebugUnregister() - 译文是一个有用的测试工具,但不是太懂是什么东西
  • Activity.recreate() - 用于重建Activity.
  • PackageManager.checkSignatures() - 同时安装两个app时可以用这个进行签名检查。
  • Activity.isChangingConfigurations() - 如果activity中的Configuration会经常被改变的话,使用这方法不用手动保持了。
  • SearchRecentSuggestionsProvider - 可以创建有提示效果的Provider
  • ViewTreeObserver - View的检测工具,监控View各种状态
  • org.gradle.daemon=true -gradle的设置项,仅在命令行使用。
  • DatabaseUtils - 包含各种数据库使用工具
  • android:weightSum (LinearLayout) - 如果想使用weight但又不想填满整个屏幕,就可以用来定义总大小
  • android:duplicateParentState (View) - 可以使子View复制父View的方法。比如一个ViewGroup是可点击的,那可以用这个方法在它被点击时改变所有子View的状态。
  • android:clipChildren (ViewGroup) - 如果此属性设置为不可用,那么viewgroup的子View在绘制的时候会超出他的范围,做动画时常用到。
  • android:fillViewport (ScrollView) - 用来解决内容不足时添不满屏幕的问题。
  • android:tileMode (BitmapDrawable) - 可指定图片使用重复填充的模式。
  • android:enterFadeDuration/android:exitFadeDuration (Drawables) -Drawable有多种状态时,可以定义它展示前的淡入淡出。
  • android:scaleType (ImageView) - 定义Imageview中的缩放与裁剪。
  • <merge> - 此标签可以在另一个布局中包含别的布局,而不重新创建viewgroup,检查层级来优化视图
  • AtomicFile - *不明白是怎么用的,也没查阅到什么信息。(Manipulates a file atomically by using a backup file)
  • ViewDragHelper - 可拖动的视图实现起来是比较复杂的,这个类可以很好的帮你。
  • PopupWindow - 一个浮动视图,应用应该已经很广泛了。
  • ActionBar.getThemedContext() - 创建自己的actionBar主题时使用
  • ThumbnailUtils - 创建图像缩略图,并且可以创建视频的缩略图,就是我们平时图像采样用的
  • Context.getExternalFilesDir() - 获取SD卡目录,很常用
  • SparseArray - 一个针对Map<Integer, Object>获这样的hashMap设计的类,原来不太懂,不清楚做了什么优化
  • PackageManager.setComponentEnabledSetting() - 开启/关闭组件的方法。
  • SQLiteDatabase.yieldIfContendedSafely() - 暂停数据库事物来减少系统使用
  • Environment.getExternalStoragePublicDirectory() - 获取SD卡公共路径,如铃声,音乐什么的。
  • View.generateViewId() - *看名称是生成view 的id,不清楚是干嘛用的
  • ActivityManager.clearApplicationUserData() - 重置应用程序,注销用户的最简单方法
  • Context.createConfigurationContext() - *不清楚使用环境
  • ActivityOptions - 可以为activity添加动画
  • AdapterViewFlipper.fyiWillBeAdvancedByHostKThx() - 因为它有趣,没有其他原因(不明觉厉,不知道怎么个有趣法)
  • ViewParent.requestDisallowInterceptTouchEvent() - 事件的打断,从父视图中夺取控制权
0 0
原创粉丝点击