欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发中常用的一些小技巧

程序员文章站 2022-03-23 14:05:40
activity.startactivities() 常用于在应用程序中间启动其他的activity. textutils.isempty() 简单的工具类,用于检测是否...

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() 这个方法可以很顺利地取消正在运行的动画.我超喜欢.

dateutils.formatdatetime() 用来进行区域格式化工作,输出格式化和本地化的时间或者日期。

alarmmanager.setinexactrepeating 通过闹铃分组的方式省电,即使你只调用了一个闹钟,这也是一个好的选择,(可以确保在使用完毕时自动调用 alarmmanager.cancel ()。原文说的比较抽象,这里详细说一下:setinexactrepeating指的是设置非准确闹钟,使用方法:alarmmanager.setinexactrepeating(alarmmanager.rtc, starttime,intervall, pendingintent),非准确闹钟只能保证大致的时间间隔,但是不一定准确,可能出现设置间隔为30分钟,但是实际上一次间隔20分钟,另一次间隔40分钟。它的最大的好处是可以合并闹钟事件,比如间隔设置每30分钟一次,不唤醒休眠,在休眠8小时后已经积累了16个闹钟事件,而在手机被唤醒的时候,非准时闹钟可以把16个事件合并为一个, 所以这么看来,非准时闹钟一般来说比较节约能源。

formatter.formatfilesize() 一个区域化的文件大小格式化工具。通俗来说就是把大小转换为mb,g,kb之类的字符串。

actionbar.hide()/.show() 顾名思义,隐藏和显示actionbar,可以优雅地在全屏和带actionbar之间转换。

linkify.addlinks() 在text上添加链接。很实用。

staticlayout 在自定义 view 中渲染文字的时候很实用。

activity.onbackpressed() 很方便的管理back键的方法,有时候需要自己控制返回键的事件的时候,可以重写一下。比如加入 “点两下back键退出” 功能。

gesturedetector 用来监听和相应对应的手势事件,比如点击,长按,慢滑动,快滑动,用起来很简单,比你自己实现要方便许多。

drawfilter 可以让你在不调用ondrew方法的情况下,操作canvas,比了个如,你可以在创建自定义 view 的时候设置一个 drawfilter,给父 view 里面的所有 view 设置反别名。

activitymanager.getmemoryclass() 告诉你你的机器还有多少内存,在计算缓存大小的时候会比较有用.

viewstub 它是一个初始化不做任何事情的 view,但是之后可以载入一个布局文件。在慢加载 view 中很适合做占位符。唯一的缺点就是不支持标签,所以如果你不太小心的话,可能会在视图结构中加入不需要的嵌套。

systemclock.sleep() 这个方法在保证一定时间的 sleep 时很方便,通常我用来进行 debug 和模拟网络延时。

displaymetrics.density 这个方法你可以获取设备像素密度,大部分时候最好让系统来自动进行缩放资源之类的操作,但是有时候控制的效果会更好一些.(尤其是在自定义view的时候).

pair.create() 方便构建类和构造器的方法。