首页 > 程序开发 > 移动开发 > Android >

Android开发中的小技巧(2)

2017-04-17

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

Html.fromHtml()

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

!注意:在string.xml中要用 去转义,

如:

 
  teletype-style font. 
        But no use for the code tag! ]]>

上面就用到了大量的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("今天礼拜五"));

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 形式的。

  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
相关文章
最新文章
热点推荐