图像的平移,缩放..

来源:互联网 发布:网络大专文凭找工作 编辑:程序博客网 时间:2024/04/28 17:05
package com.itheima.img;


import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.widget.ImageView;


public class MainActivity extends Activity {

ImageView iv_src , iv_target;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

iv_src = (ImageView) findViewById(R.id.iv_src);
iv_target = (ImageView) findViewById(R.id.iv_target);

//先让原图显示
//1. 得到原图
Bitmap srcBitmap = BitmapFactory.decodeFile("/mnt/sdcard/tp1.jpg");
iv_src.setImageBitmap(srcBitmap);


//旋转的图片显示  --- 但凡是对图像进行操作 (平移、旋转、缩放) ,都是对这张图像在内存中的拷贝操作,
//而不是对本图进行操作。

//2.得到拷贝的图片 
//先创建出来一份空白的位图,这个位图的宽度和高度与原图一模一样 , 配置信息也一模一样。
//以下写的代码相当于是临摹一张正版的图片一样 ,假设临摹的是八骏图 .   这里相当于是得到了一张空白的纸张
Bitmap copytBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());

//3.  定义画板  画板上放置空白的纸张,一会要进行作画
Canvas canvas = new Canvas(copytBitmap);

//4. 定义画笔
Paint paint = new Paint();
// paint.setColor(color)

//5. 定义矩阵 -- 目前是按照1:1的比例作画
Matrix  matrix = new Matrix();


//指定旋转15度
//matrix.setRotate(180, copytBitmap.getWidth() / 2 , copytBitmap.getHeight() / 2);
//matrix.setTranslate(50, 50);

//缩放 ,宽度是原来的0.2倍 ,高度是原来的0.8倍
//matrix.setScale(0.2f, 0.8f);

//把y坐标都全部改成负数
matrix.setScale(1, -1) ; 
//让其平移回来显示 setXXXX并不会在以前的效果基础上再设置新的效果。
// postXXXX在以前的基础上作变更。
matrix.postTranslate(0, copytBitmap.getHeight());


//6. 开始作画  参数一: 参照哪一个图片作画 参数二:矩阵  参数三: 画笔
canvas.drawBitmap(srcBitmap, matrix, paint);


//7.显示图片
iv_target.setImageBitmap(copytBitmap);




}




}
0 0