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);
}
}