package com.qq.cpimage;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView imageView1;
private ImageView imageView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);
// 加载原图
Bitmap bitmap = BitmapFactory
.decodeFile("/sdcard/DCIM/Camera/20150815_032812.jpg");
imageView1.setImageBitmap(bitmap);
// 复制文件
// 按照原图的宽度,高度,配置创建一个空白的图片
Bitmap alterbBitmap = Bitmap.createBitmap(bitmap.getWidth() / 2,
bitmap.getHeight() / 2, bitmap.getConfig());
// 赶紧临摹一个图片
Canvas canvas = new Canvas(alterbBitmap);// 创建一个画板
Paint paint = new Paint();// 创建一个画笔
paint.setColor(Color.BLACK);// 画笔的初始颜色,如果原图没颜色用黑色
// 第一个参数是临摹的图片
// 1:1模型画图 缩放矩阵
// 画笔
// canvas.drawBitmap(bitmap, new Matrix(), paint);
// imageView2.setImageBitmap(alterbBitmap);
// 缩小
Matrix matrix = new Matrix();
matrix.setScale(0.5f, 0.5f);
// 旋转
matrix.setRotate(30);// 旋转30度,默认是左上角的点为旋转中心点
matrix.setRotate(30, px, py);// 设定旋转角度,中心点
// 平移
matrix.setTranslate(100, 0);// 向右100,向下0。。。注意溢出画布,可设定画布大小
//镜子效果
matrix.setScale(-1.0f, 1);//关于x轴对称
matrix.postTranslate(bitmap.getWidth(), 0);//移回原位
//倒影效果
matrix.setScale(1.0f, -1.0f);//关于x轴对称
matrix.postTranslate(0, bitmap.getHeight());//移回原位
canvas.drawBitmap(bitmap, matrix, paint);
imageView2.setImageBitmap(alterbBitmap);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView imageView1;
private ImageView imageView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);
// 加载原图
Bitmap bitmap = BitmapFactory
.decodeFile("/sdcard/DCIM/Camera/20150815_032812.jpg");
imageView1.setImageBitmap(bitmap);
// 复制文件
// 按照原图的宽度,高度,配置创建一个空白的图片
Bitmap alterbBitmap = Bitmap.createBitmap(bitmap.getWidth() / 2,
bitmap.getHeight() / 2, bitmap.getConfig());
// 赶紧临摹一个图片
Canvas canvas = new Canvas(alterbBitmap);// 创建一个画板
Paint paint = new Paint();// 创建一个画笔
paint.setColor(Color.BLACK);// 画笔的初始颜色,如果原图没颜色用黑色
// 第一个参数是临摹的图片
// 1:1模型画图 缩放矩阵
// 画笔
// canvas.drawBitmap(bitmap, new Matrix(), paint);
// imageView2.setImageBitmap(alterbBitmap);
// 缩小
Matrix matrix = new Matrix();
matrix.setScale(0.5f, 0.5f);
// 旋转
matrix.setRotate(30);// 旋转30度,默认是左上角的点为旋转中心点
matrix.setRotate(30, px, py);// 设定旋转角度,中心点
// 平移
matrix.setTranslate(100, 0);// 向右100,向下0。。。注意溢出画布,可设定画布大小
//镜子效果
matrix.setScale(-1.0f, 1);//关于x轴对称
matrix.postTranslate(bitmap.getWidth(), 0);//移回原位
//倒影效果
matrix.setScale(1.0f, -1.0f);//关于x轴对称
matrix.postTranslate(0, bitmap.getHeight());//移回原位
canvas.drawBitmap(bitmap, matrix, paint);
imageView2.setImageBitmap(alterbBitmap);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}