Html.fromHtml()
解析 Html 格式的富文本内容,并返回一个带样式的字符串,供 TextView 等控件显示。可以解决一些含超链接、图文混排等格式的富文本内容的显示问题。
!注意:在string.xml中要用
<!--cdata-->
去转义,
如:
<string name="htmlFormattedText">
<![CDATA[ Text with markup for [b]bold[/b] and [i]italic[/i] text.
There is also support for a <tt>teletype-style</tt> font.
But no use for the <code>code</code> tag! ]]>
</string>
上面就用到了大量的HTML标签了,JAVA代码中这样使用:
TextView view = (TextView)findViewById(R.id.sampleText);
String formattedText = getString(R.string.htmlFormattedText);
Spanned result = Html.fromHtml(formattedText);
view.setText(result);
或:view.setText(Html.fromHtml("<u>今天礼拜五</u>"));
DateUtils.formatDateTime()
Android SDK 提供的这个日期工具类可以将 long 类型的毫秒级时间数据格式化成特定显示格式的字符串。通常我们使用 JDK 中的 SimpleDateFormat 格式化日期数据,比如 new SimpleDateFormat(“yyyy-MM-dd HH:mm”).format(),DateUtils 的作用就是替我们封装了这个过程。格式化结果与当前设备的本地语言环境有关。这里列举几个常用 format 格式(中文环境下):
FORMAT_SHOW_TIME:10:37
FORMAT_SHOW_WEEKDAY:星期五
FORMAT_SHOW_YEAR:2017年3月3日
FORMAT_NUMERIC_DATE:3/3
FORMAT_NO_MONTH_DAY:三月
FORMAT_SHOW_DATE:3月3日
Formatter.formatFileSize()
Formatter.formatFileSize(Context context, long sizeBytes)
格式化文件大小,将字节数据格式化为 B、KB、M 等单位的相应数据。context 参数用于判断返回结果的字符串顺序,right-to-left 还是 left-to-right 形式的。
Linkify.addLinks()
TextView 文本控件中的内容,通过 android:autoLink 属性可以为其添加如 web、phone 等固定模版的超链接点击事件。但毕竟系统模版有限,而利用 Linkify.addLinks()
方法可以添加一些应用内自定义模版,比如新浪微博中的 “@XXX” 格式的超链接跳转等,都可以通过自定义正则表达式来匹配处理。
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);
}
截屏
在某些情况下,截屏非常有用。从level 21开始 MediaProjection可以实时获取屏幕内容和系统声音信息流。有时使用标准的Android API通过getWindow()非常简单地把屏幕内容保存为Bitmap:
View viewRoot = getWindow().getDecorView().getRootView();
viewRoot.setDrawingCacheEnabled(true);
Bitmap screenShotAsBitmap = Bitmap.createBitmap(viewRoot.getDrawingCache());
viewRoot.setDrawingCacheEnabled(false);
// use screenShotAsBitmap as you need