Android 图片的平移、缩放、倒影、旋转实现

编程入门 行业动态 更新时间:2024-10-28 14:31:17

Android 图片的平移、<a href=https://www.elefans.com/category/jswz/34/1770385.html style=缩放、倒影、旋转实现"/>

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 图片的平移、缩放、倒影、旋转实现

本文发布于:2024-02-12 08:14:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1686912.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:缩放   倒影   图片   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!