from http://topmanopensource.javaeye.com/blog/674727
package com.easyway.andorid.hello;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ImageView.ScaleType;
import android.widget.LinearLayout.LayoutParams;
/**
* Android实现图片的缩放功能
* @author longgangbai
* @date 2010-5-24
* @version 1.0
* @since JDK6.0
*/
public class ImageViewAndorid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置程序的标题
setTitle("缩放和旋转图片");
//实例化LinearLayout类的对象lly
LinearLayout lly=new LinearLayout(this);
//获取图片的信息 这里用的是icon.png ,图片存放的位置在res/drawable下,
//同时这里还方有itfunz.bmp,这就是应用程序的图标
Bitmap bmpOrg=BitmapFactory.decodeResource(getResources(), R.drawable.icon);
//获取图片的原始的大小
int width=bmpOrg.getWidth();
int height=bmpOrg.getHeight();
int newWidth=400;
int newheight=400;
//定义缩放的高和宽的尺寸
float sw=((float)newWidth)/width;
float sh=((float)newheight)/height;
//创建操作图片的用的Matrix对象
Matrix matrix=new Matrix();
matrix.postScale(sw,sh);
//缩放图片的动作
matrix.postRotate(30);
//旋转30*
Bitmap resizeBitmap=Bitmap.createBitmap(bmpOrg,0,0,width,height,matrix,true);
//创建一个新的图片
BitmapDrawable bmp=new BitmapDrawable(resizeBitmap);
//创建Bitmap转换为Drawable对象,使其可以使用在ImageView和ImageButton中
ImageView imageView=new ImageView(this);
//创建ImageView的对象
imageView.setImageDrawable(bmp);
//将图片设置到中间
imageView.setScaleType(ScaleType.CENTER);
//将图片填充之整个视图
lly.addView(imageView, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
//添加ImageView到布局模板中
setContentView(lly);
}
}