简单的 Matrix 旋转操作

public class Main2Activity extends BaseActivity {
        Intent int1;
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       
        TestView v = new TestView(this);
       
        super.onCreate(savedInstanceState);
                 setTitle("eoeAndroid教程: 缩放和旋转图片 -by:IceskYsl");
                 LinearLayout linLayout = new LinearLayout(this);
       

                 // 加载需要操作的图片,这里是eoeAndroid的 logo图片
                 Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
       

                 //获取这个图片的宽和高
                 int width = bitmapOrg.getWidth();
                 int height = bitmapOrg.getHeight();
       

                 //定义预转换成的图片的宽度和高度
                 int newWidth = 200;
                 int newHeight = 200;
       

                 //计算缩放率,新尺寸除原始尺寸
                 float scaleWidth = ((float) newWidth) / width;
                 float scaleHeight = ((float) newHeight) / height;
       

                 // 创建操作图片用的matrix对象
                 Matrix matrix = new Matrix();
       

                 //旋转时缩放图片大小
                 matrix.postScale(scaleWidth, scaleHeight);
       

                 //旋转图片角度
                 matrix.postRotate(45);
       

                 // 创建新的图片
                 Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,width, height, matrix, true);
       

                 //将上面创建的Bitmap转换成Drawable对象,使得其可以使用在ImageView, ImageButton中
                 BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
       

                 //创建一个ImageView
                 ImageView imageView = new ImageView(this);
       

                 // 设置ImageView的图片为上面转换的图片
                 imageView.setImageDrawable(bmd);
       

                 //将图片居中显示
                 imageView.setScaleType(ScaleType.CENTER);
       

                 //将ImageView添加到布局模板中
                 linLayout.addView(imageView,
                   new LinearLayout.LayoutParams(
                               LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT
                         )
                 );
       

                 // 设置为本activity的模板
                 setContentView(linLayout);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值