Android开发中的小技巧(2)

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

  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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值