android常用方法

getResources().getIdentifier(String name, String defType, String defPackage)

imageView.setImageResource(getResources().getIdentifier("ic_launcher", "drawable", getPackageName()));

radioGroup.check(getResources().getIdentifier("rb_indicator_" + position, "id", getPackageName()));

实际使用过程中,第一个参数 name,也就是资源名称,根据需要动态设置,这就需要多个资源在命名时保持一定的规范格式。

TextUtils.isEmpty(CharSequence str)

使用频率超高的字符串判空方法,返回一个 boolean 值,内部实现的判断条件为:str == null || str.length() == 0

Html.fromHtml()

解析 Html 格式的富文本内容,并返回一个带样式的字符串,供 TextView 等控件显示。可以解决一些含超链接、图文混排等格式的富文本内容的显示问题。

DateUtils.formatDateTime()

利用 Android SDK 提供的这个日期工具类可以将 long 类型的毫秒级时间数据格式化成特定显示格式的字符串。通常我们使用 Java SDK 中的 SimpleDateFormat 格式化日期数据,比如 new SimpleDateFormat("yyyy-MM-dd HH:mm").format()DateUtils 的作用就是替我们封装了这个过程。

  • FORMAT_SHOW_DATE:3月3日
  • FORMAT_SHOW_TIME:10:37
  • FORMAT_SHOW_WEEKDAY:星期五
  • FORMAT_SHOW_YEAR:2017年3月3日
  • FORMAT_NUMERIC_DATE:3/3
  • FORMAT_NO_MONTH_DAY:三月


Formatter.formatFileSize(Context context, long sizeBytes)

格式化文件大小,将字节数据格式化为 B、KB、M 等单位的相应数据。context 参数用于判断返回结果的字符串顺序,right-to-left 还是 left-to-right 形式的。这个工具类免去我们自己转化计算的过程,非常方便,特别适用于应用内文件下载的类似场景。


TypedValue.applyDimension(int unit, float value, DisplayMetrics metrics)

将指定单位的尺寸数据按照当前设备屏幕信息转化为相应的像素值。其中,TypedValue 为第一个参数提供了常用的单位值,比如:

  • COMPLEX_UNIT_PX
  • COMPLEX_UNIT_DIP
  • COMPLEX_UNIT_PT
  • COMPLEX_UNIT_SP


view.performClick()

自动调用 View 点击事件。通常按钮等控件只有在用户点击时才能触发其点击事件,该方法可以由某些特殊条件触发模拟用户点击行为。类似的还有 performLongClick() 方法。

Log.getStackTraceString(Throwable tr)

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE)

设置安全窗口,禁用系统截屏。防止 App 中的一些界面被截屏,并显示在其他设备中造成信息泄漏。(常见手机设备系统截屏操作方式为:同时按下电源键和音量键。)

拦截 Back 键,使 App 进入后台而不是关闭

@Override public void onBackPressed() {

Intent launcherIntent = new Intent(Intent.ACTION_MAIN);

launcherIntent.addCategory(Intent.CATEGORY_HOME);

startActivity(launcherIntent);

}

使用 Back 键返回桌面,但不关闭当前应用,而是使之进入后台,就像按下 Home 键一样。

这个技巧厉害了。通常为了防止出现用户误按 Back 键退出 App 的情况,我们会在应用首页的 Activity 中监听返回键操作,使用 Toast 弱提示甚至 Dialog 强提示的方式给到用户一个再次确认的操作,但无法阻止用户通过返回键逐步关闭应用。

然而,如果用这个方法拦截 App 最后一个 Activity(常见为首页界面),既没有阻碍用户操作(回到桌面),又没有关闭掉我们的应用(后台运行中),间接提高 App 的存活时间,真乃暗度陈仓。并且据我实验,微信、支付宝、微博等 App 都是这么做的,大家不妨一试。

ThumbnailUtils

缩略图工具类,可以根据本地视频文件源、Bitmap 对象生成缩略图,常用的公共静态方法为:

  • createVideoThumbnail(String filePath, int kind)
  • extractThumbnail(Bitmap source, int width, int height)


bitmap.extractAlpha()

从源 bitmap 中根据 alpha 获取一个新的 bitmap 对象。比较绕口,通常 App 中的 Icon 多数是纯色透明像素背景组成,利用这个方法可以对该图的非透明区域着色,有多种使用场景,常见如 Button 的 pressed 状态,View 的阴影状态等。


ArgbEvaluator

android:weightSum

android:descendantFocusability

android:duplicateParentState

android:fillViewport

ScrollView 的一个属性,用于设置内容部分是否填满屏幕,主要针对内容不足以填满屏幕的情况。

当scrollview的子布局不足以铺满全屏的时候,scrollview的高度就是子布局高度之和,这个时候如果我们想让scrollview铺满全屏只需要设置 fillViewport=true就好了

Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...) - 掘金

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值