解析:
1)根据原来的图片创建新的图片
Bitmap modBm = Bitmap.createBitmap(bm.getWidth()+20, bm.getHeight()+20, bm.getConfig());
2)设置到画布
Canvas canvas = new Canvas(modBm);
3)使用矩阵进行平移…
Matrix matrix = new Matrix();
matrix.setRotate(90, bm.getWidth()/2, bm.getHeight()/2);
4)把改变后图片设置到
canvas.drawBitmap(bm, matrix, paint);
imageView2.setImageBitmap(modBm);
示例代码:
1、平移:
public class TranslateImageActivity extends Activity {
private ImageView imageView1;
private ImageView imageView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_rotate);
initViews();
}
private void initViews() {
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.mm0);
imageView1.setImageBitmap(bm);
Bitmap modBm = Bitmap.createBitmap(bm.getWidth()+20, bm.getHeight()+20, bm.getConfig());
Canvas canvas = new Canvas(modBm);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setAntiAlias(true);
Matrix matrix = new Matrix();
//matrix.setRotate(90, bm.getWidth()/2, bm.getHeight()/2);
matrix.setTranslate(20, 20);
matrix.postTranslate(20, 20);
canvas.drawBitmap(bm, matrix, paint);
imageView2.setImageBitmap(modBm);
}
}
2、缩放
public class ScaleImageActivity extends BaseActivity {
private static final int DOUBLE = 2;
private ImageView iv1, iv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scale_iamge);
iv1 = (ImageView) findViewById(R.id.imageView1);
iv2 = (ImageView) findViewById(R.id.imageView2);
Bitmap b1 = BitmapFactory.decodeResource(getResources(), R.drawable.p1);
iv1.setImageBitmap(b1);
Bitmap b2 = Bitmap.createBitmap(b1.getWidth()*DOUBLE, b1.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(b2);
Matrix matrix = new Matrix();
matrix.setValues(new float[]{
DOUBLE * 1.0f, 0, 0,//x
0, 1.0f, 0,//y
0, 0, 1.0f//z
});
canvas.drawBitmap(b1, matrix, new Paint());
iv2.setImageBitmap(b2);
}
}
3、倒影
public class ShadeImageActivity extends Activity {
private ImageView imageView1;
private ImageView imageView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_rotate);
initViews();
}
private void initViews() {
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.mm3);
imageView1.setImageBitmap(bm);
Bitmap modBm = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig());
Canvas canvas = new Canvas(modBm);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setAntiAlias(true);
Matrix matrix = new Matrix();
//matrix.setRotate(90, bm.getWidth()/2, bm.getHeight()/2);
//matrix.setTranslate(20, 20);
//镜子效果
matrix.setScale(1, -1);
matrix.postTranslate(0, bm.getHeight());
canvas.drawBitmap(bm, matrix, paint);
imageView2.setImageBitmap(modBm);
}
}
4、旋转
public class RotateImageActivity extends Activity {
private ImageView imageView1;
private ImageView imageView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_rotate);
initViews();
}
private void initViews() {
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.mm0);
imageView1.setImageBitmap(bm);
Bitmap modBm = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig());
Canvas canvas = new Canvas(modBm);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setAntiAlias(true);
Matrix matrix = new Matrix();
matrix.setRotate(90, bm.getWidth()/2, bm.getHeight()/2);
canvas.drawBitmap(bm, matrix, paint);
imageView2.setImageBitmap(modBm);
}
}
———————————————————————
有需求者请加qq:136137465,非诚勿扰
(java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万)
01.高级架构师四十二个阶段高
02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)
——————————————————————–