huzhenv 2010-08-23
packagecom.eoeandroid.demo.testcode;
importandroid.app.Activity;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;
importandroid.graphics.Matrix;
importandroid.graphics.drawable.BitmapDrawable;
importandroid.os.Bundle;
importandroid.view.ViewGroup.LayoutParams;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.widget.ImageView.ScaleType;
publicclassbitmaptestextendsActivity{
publicvoidonCreate(Bundleicicle){
super.onCreate(icicle);
setTitle("eoeAndroid教程:缩放和旋转图片-by:IceskYsl");
LinearLayoutlinLayout=newLinearLayout(this);
//加载需要操作的图片,这里是eoeAndroid的logo图片
BitmapbitmapOrg=BitmapFactory.decodeResource(getResources(),
R.drawable.eoe_android);
//获取这个图片的宽和高
intwidth=bitmapOrg.getWidth();
intheight=bitmapOrg.getHeight();
//定义预转换成的图片的宽度和高度
intnewWidth=200;
intnewHeight=200;
//计算缩放率,新尺寸除原始尺寸
floatscaleWidth=((float)newWidth)/width;
floatscaleHeight=((float)newHeight)/height;
//创建操作图片用的matrix对象
Matrixmatrix=newMatrix();
//缩放图片动作
matrix.postScale(scaleWidth,scaleHeight);
//旋转图片动作
matrix.postRotate(45);
//创建新的图片
BitmapresizedBitmap=Bitmap.createBitmap(bitmapOrg,0,0,
width,height,matrix,true);
//将上面创建的Bitmap转换成Drawable对象,使得其可以使用在ImageView,ImageButton中
BitmapDrawablebmd=newBitmapDrawable(resizedBitmap);
//创建一个ImageView
ImageViewimageView=newImageView(this);
//设置ImageView的图片为上面转换的图片
imageView.setImageDrawable(bmd);
//将图片居中显示
imageView.setScaleType(ScaleType.CENTER);
//将ImageView添加到布局模板中
linLayout.addView(imageView,
newLinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT
)
);
//设置为本activity的模板
setContentView(linLayout);
}
}