在 Android UI 开发专题的前五节我们讲到的东西主要是基础和理论内容,从本次 Android123 将通过实
例代码来演示,本次主要是 Bitmap 和 Canvas 类的使用,根据要求缩放 Bitmap 对象并返回新的
Bitmap 对象。centerToFit 方法一共有 4 个参数,返回一个 Bitmap 类型,第一个参数为原始的位图对
象,width 和 height 分别为新的宽和高,而 Context 是用来加载资源的上下文实例。
Bitmap centerToFit(Bitmap bitmap, int width, int height, Context context) {
$nal int bitmapWidth = bitmap.getWidth(); //获取原始 bitmap 的宽度
$nal int bitmapHeight = bitmap.getHeight();
if (bitmapWidth < width || bitmapHeight < height) {
int color = context.getResources().getColor(R.color.window_background); //从资源读
取背景色
Bitmap centered = Bitmap.createBitmap(bitmapWidth < width ? width :
bitmapWidth,
bitmapHeight < height ? height : bitmapHeight, Bitmap.Con$g.RGB_565);
centered.setDensity(bitmap.getDensity());
Canvas canvas = new Canvas(centered);
canvas.drawColor(color); //先绘制背景色
canvas.drawBitmap(bitmap, (width - bitmapWidth) / 2.0f, (height - bitmapHeight) /
2.0f,null); //通过 Canvas 绘制 Bitmap
bitmap = centered;
}
return bitmap; //返回新的 bitmap
}
本段代码从 Android 2.1 开始将会应用在全新的 Home 主屏上,同时相关的 ImageView 的适应屏幕大
小的 setScaleType($tCenter) 方法类似,仅仅是我们制定了未来的大小。