缩放、倒影、旋转实现"/>
Android 图片的平移、缩放、倒影、旋转实现
解析:
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;@Overrideprotected 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;@Overrideprotected 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,//x0, 1.0f, 0,//y0, 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;@Overrideprotected 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;@Overrideprotected 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入门)
——————————————————————–
更多推荐
Android 图片的平移、缩放、倒影、旋转实现
发布评论