你的位置:首页 > 操作系统

[操作系统]Android开发中,有哪些让你觉得相见恨晚的方法、类或接口?


Activity.startActivities() 常用于在应用程序中间启动其他的Activity。
TextUtils.isEmpty() 简单的工具类,用于检测是否为空。
Html.fromHtml() 用于生成一个Html,参数可以是一个字符串.个人认为它不是很快,所以我不怎么经常去用.(我说不经常用它是为了重点突出这句话:请多手动构建 Spannable 来替换 Html.fromHtml),但是它对渲染从 web 上获取的文字还是很不错的。
TextView.setError() 在验证用户输入的时候很棒。
Build.VERSION_CODES 这个标明了当前的版本号,在处理兼容性问题的时候经常会用到.点进去可以看到各个版本的不同特性。
Log.getStackTraceString() 方便的日志类工具,方法Log.v()、Log.d()、Log.i()、Log.w()和Log.e()都是将信息打印到LogCat中,有时候需要将出错的信息插入到数据库或一个自定义的日志文件中,那么这种情况就需要将出错的信息以字符串的形式返回来,也就是使用static String getStackTraceString(Throwable tr)方法的时候。
LayoutInflater.from() 顾名思义,用于Inflate一个layout,参数是layout的id.这个经常写Adapter的人会用的比较多。
ViewConfiguration.getScaledTouchSlop() 使用 ViewConfiguration 中提供的值以保证所有触摸的交互都是统一的。这个方法获取的值表示:用户的手滑动这个距离后,才判定为正在进行滑动.当然这个值也可以自己来决定.但是为了一致性,还是使用标准的值较好。
PhoneNumberUtils.convertKeypadLettersToDigits 顾名思义.将字母转换为数字,类似于T9输入法,
Context.getCacheDir() 获取缓存数据文件夹的路径,很简单但是知道的人不多,这个路径通常在SD卡上(这里的SD卡指的是广义上的SD卡,包括外部存储和内部存储)Adnroid/data/您的应用程序包名/cache/ 下面.测试的时候,可以去这里面看是否缓存成功.缓存在这里的好处是:不用自己再去手动创建文件夹,不用担心用户把自己创建的文件夹删掉,在应用程序卸载的时候,这里会被清空,使用第三方的清理工具的时候,这里也会被清空。
ArgbEvaluator 用于处理颜色的渐变。就像 Chris Banes 说的一样,这个类会进行很多自动装箱的操作,所以最好还是去掉它的逻辑自己去实现它。这个没用过,不明其所以然,回头再补充.
ContextThemeWrapper 方便在运行的时候修改主题。
Space space是Android 4.0中新增的一个控件,它实际上可以用来分隔不同的控件,其中形成一个空白的区域.这是一个轻量级的视图组件,它可以跳过Draw,对于需要占位符的任何场景来说都是很棒的。
ValueAnimator.reverse() 这个方法可以很顺利地取消正在运行的动画。


原文地址:
http://www.zhihu.com/question/33636939#answer-18276269

1、Throwable接口中的getStackTrace()方法,根据这个方法可以得到函数的逐层调用地址,其返回值为StackTraceElement[];

2、StackTraceElement类,其中四个方法getClassName(),getFileName(),getLineNumber(),getMethodName()在调试程序打印Log时非常有用;

3、UncaughtExceptionHandler接口,再好的代码异常难免,利用此接口可以处理未捕获的异常;

4、Resources类中的getIdentifier(name, defType, defPackage)方法,根据资源名称获取其ID,做UI时经常用到;

5、View中的isShown()方法,以前都是用view.getVisibility() == View.VISIBLE来判断的(╯□╰);

6、Arrays类中的asList(T... array)方法,数组转List集合;反过来List.toArray();

7、android.text.format.Formatter类中formatFileSize(Context, long)方法,用来格式化文件Size(B → KB → MB → GB);

8、android.media.ThumbnailUtils类,用来获取媒体(图片、视频)缩略图;

9、String类中的format(String, Object...)方法,用来格式化strings.

10、View类中的三个方法:callOnClick(),performClick(),performLongClick(),用于触发View的点击事件;

11、TextUtils类中的isEmpty(String)方法,判断字符串是否为null或"";

12、TextView类中的append(String)方法,添加文本;

13、View类中的getDrawingCache()等一系列方法,目前只知道可以用来截图;

14、DecimalFormat类,用于字串格式化包括指定位数、百分数、科学计数法等;

15、System类中的arraycopy(src, srcPos, dest, destPos, length)方法,用来copy数组;

16、Fragment类中的onHiddenChanged(boolean)方法,使用FragmentTransaction中的hide(),show()时貌似Fragment的其它生命周期方法都不会被调用,太坑爹!

17、Activity类中的onWindowFocusChanged(boolean)方法;

18、View类中的getLocationInWindow(int[])方法和getLocationOnScreen(int[])方法,获取View在窗口/屏幕中的位置;

19、TextView类中的setTransformationMethod(TransformationMethod)方法,可用来实现“显示密码”功能;

20、TextWatcher接口,用来监听文本输入框内容的改变;

21、View类中的setSelected(boolean)方法结合android:state_selected=""用来实现图片选中效果;

22、Surface设置透明:SurfaceView.setZOrderOnTop(true);
SurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);但是会挡住其它控件;

23、ListView或GridView类中的setFastScrollEnabled(boolean)方法,用来设置快速滚动滑块是否可见,当然前提是item够多;

24、PageTransformer接口,用来自定义ViewPager页面切换动画,用setPageTransformer(boolean, PageTransformer)方法来进行设置;

25、apache提供的一系列jar包:commons-lang.jar,commons-collections.jar,commons-beanutils.jar等,里面很多方法可能是你曾经用几十几百行代码实现过的,但是执行效率或许要差很多,比如:ArrayUtils,StringUtils……;

26、AndroidTestCase类,Android单元测试;

27、Activity类中的onNewIntent(intent)方法。