之前的系列文章 Android开发之那些好用的数据结构与API 和Android开发之那些好用的数据结构与API(二)中,已经介绍了一些,趁热打铁,本次介绍的内容很实用哦~~
1、RoundedBitmapDrawable
RoundedBitmapDrawable 是 android.support.v4.graphics.drawable 里面的一个类,但是记得一定得是21+以上的版本。它是用来创建简单的圆角图片,以前做App时,个人中心经常有个圆角的个人头像,可能大家都会用第三方的库来做,其实在2014年的Google IO大会后Google发布了新的Support lib,其中就有这个类和相应的API,看看最新的Android系统中联系人的圆形头像,就是基于此而做的,API很简单,如下:
ImageView imageView = (ImageView) findViewById(R.id.img);
Resources res = getResources();
// 获取Bitmap图片
Bitmap src = BitmapFactory.decodeResource(res, R.drawable.pic);
// 创建RoundedBitmapDrawable对象
RoundedBitmapDrawable dr = RoundedBitmapDrawableFactory
.create(res, src);
// 设置圆角半径
dr.setCornerRadius(Math.max(src.getWidth(), src.getHeight()) / 2.0f);
// 显示圆角图片
imageView.setImageDrawable(dr);
原图与效果图:
2、DateUtils
在Android中经常要处理与日期有关的字段,当然可以用Java中的日期处理API,但是Android中也提供了,在android.text.format.DateUtils 类中有如下几个方法,下面以几个简单的案例进行介绍。
(1)格式化时间,比Java自带的要爽得多,麻麻说再也不需要记忆乱七八糟的 yyyy年MM月dd日了
//格式化时间,最后参数设定显示的格式
String date = DateUtils.formatDateTime(MainActivity.this,
System.currentTimeMillis(), DateUtils.FORMAT_SHOW_DATE
| DateUtils.FORMAT_SHOW_TIME
| DateUtils.FORMAT_SHOW_YEAR
| DateUtils.FORMAT_ABBREV_MONTH
| DateUtils.FORMAT_SHOW_WEEKDAY);
tv.setText(date);
(2) 返回相对于当前时间的最大区间表示的字符串:几(分钟,小时,天,周,月,年)前/后。想想微博上那些时间,是不是瞬间觉得简单了~~
CharSequence date = DateUtils.getRelativeTimeSpanString(System
.currentTimeMillis() + 1000*1000);
tv.setText(date);
(3) 返回相对于当前时间的一个时间字符串:在同一天显示时分;在不同一天,显示月日;在不同一年,显示年月日
CharSequence date = DateUtils.getRelativeTimeSpanString(
MainActivity.this, System.currentTimeMillis() + 10000 * 10000);
tv.setText(date);
(4)返回两个时间值间的相距字符串
String date = DateUtils.formatDateRange(MainActivity.this,
System.currentTimeMillis(),
System.currentTimeMillis() + 60 * 60 * 10000,
DateUtils.FORMAT_SHOW_TIME);
tv.setText(date);
以上就是本次要介绍的内容,内容虽然不是很多,但是很实用,正所谓内容不在多而在精,大家可以在项目中试试看~~