图片放大缩小旋转左移右移镜像倒影

demo:

TestImage

1. 将 meinv.jpg 图片拷贝到以下目录TestImage\app\src\main\res\mipmap-hdpi

1.AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.glsite.testimage"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

2.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"android:src="@mipmap/meinv"/><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="8dp"android:layout_marginLeft="8dp"android:layout_marginTop="8dp"android:onClick="turnBig"android:text="放大"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:layout_marginEnd="8dp"android:layout_marginRight="8dp"android:onClick="turnSmall"android:text="缩小"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>

3.activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"android:src="@mipmap/meinv"/><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="8dp"android:layout_marginLeft="8dp"android:layout_marginTop="8dp"android:onClick="turnLeft"android:text="左移"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:layout_marginEnd="8dp"android:layout_marginRight="8dp"android:onClick="turnRight"android:text="右移"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>

4.activity_main3.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"android:src="@mipmap/meinv"/><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="8dp"android:layout_marginLeft="8dp"android:layout_marginTop="8dp"android:onClick="turnCircleLeft"android:text="逆时针旋转"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:layout_marginEnd="8dp"android:layout_marginRight="8dp"android:onClick="turnCircleRight"android:text="顺时针旋转"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>

5.activity_main4.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:id="@+id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"android:src="@mipmap/meinv"/><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="8dp"android:layout_marginLeft="8dp"android:layout_marginTop="8dp"android:onClick="click01"android:text="倒影"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:layout_marginEnd="8dp"android:layout_marginRight="8dp"android:onClick="click02"android:text="镜面"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintTop_toTopOf="parent" /></android.support.constraint.ConstraintLayout>

6.MainActivity.java

package com.glsite.testimage;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.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;public class MainActivity extends AppCompatActivity {private ImageView mIv;private int dx = 0;private int degress = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main4);mIv = findViewById(R.id.iv);}/*** 放大* @param view*/public void turnBig(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();matrix.setScale(2, 2);// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth() * 2, bitmap.getHeight() * 2, bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();paint.setColor(Color.BLACK);canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}/*** 缩小* @param view*/public void turnSmall(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();matrix.setScale(0.5f, 0.5f);// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();paint.setColor(Color.BLACK);canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}/*** 左移* @param view*/public void turnLeft(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();dx--;matrix.setTranslate(dx, 0);// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();canvas.drawColor(Color.WHITE);paint.setColor(Color.BLACK);canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}/*** 右移* @param view*/public void turnRight(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();dx++;matrix.setTranslate(dx, 0);// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();canvas.drawColor(Color.WHITE);paint.setColor(Color.BLACK);canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}/*** 逆时针旋转* @param view*/public void turnCircleLeft(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();matrix.setRotate(--degress, bitmap.getWidth(), bitmap.getHeight());matrix.postTranslate(100, 100);// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth()*2, bitmap.getHeight()*2, bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();canvas.drawColor(Color.WHITE);paint.setColor(Color.BLACK);paint.setAntiAlias(true);// 消除锯齿canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}/*** 顺时针旋转* @param view*/public void turnCircleRight(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();matrix.setRotate(++degress, bitmap.getWidth(), bitmap.getHeight());matrix.postTranslate(100, 100);// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap((int)(bitmap.getWidth()*1.5), (int)(bitmap.getHeight()*1.5), bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();canvas.drawColor(Color.WHITE);paint.setColor(Color.BLACK);paint.setAntiAlias(true);// 消除锯齿canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}/*** 倒影* @param view*/public void click01(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();matrix.setScale(1, -1);matrix.postTranslate(0, bitmap.getHeight());// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();canvas.drawColor(Color.WHITE);paint.setColor(Color.BLACK);paint.setAntiAlias(true);// 消除锯齿canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}/*** 镜面* @param view*/public void click02(View view) {Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.meinv);Matrix matrix = new Matrix();matrix.setScale(-1, 1);matrix.postTranslate(bitmap.getWidth(), 0);// 1.买一张纸Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());// 2.买一个画板Canvas canvas = new Canvas(newBitmap);// 3.临摹绘画Paint paint = new Paint();canvas.drawColor(Color.WHITE);paint.setColor(Color.BLACK);paint.setAntiAlias(true);// 消除锯齿canvas.drawBitmap(bitmap, matrix, paint);mIv.setImageBitmap(newBitmap);}
}

图片放大缩小旋转左移右移镜像倒影android相关推荐

  1. jquery图片放大缩小旋转功能实现

    下载地址:https://download.csdn.net/download/qq_43037478/12076630

  2. imageView图片放大缩小及旋转

    imageView图片放大缩小及旋转 一.简介 二.方法 1)设置图片放大缩小效果 第一步:将<ImageView>标签中的android:scaleType设置为"fitCen ...

  3. Vue+Openlayers显示TileWMS时不显示默认控件放大缩小旋转等组件

    场景 Vue中使用Openlayers加载Geoserver发布的TileWMS: Vue中使用Openlayers加载Geoserver发布的TileWMS_霸道流氓气质的博客-CSDN博客 在上面 ...

  4. css3 图片放大缩小闪烁效果

    直接把图片替换就可以了,我的图片是透明的,所以body设置为黑色的,不不要可以去掉 <!doctype html> <html lang="en"> < ...

  5. vue项目 一行js代码搞定点击图片放大缩小

    一行js代码搞定xue项目需要点击图片放大缩小,其实主要用的是用到了vue:class的动态切换,内容比较简单.一开始我把维护的需求想得太复杂了,和测试小姐姐聊了一下才反应过来. 两个月不到跟了四个项 ...

  6. iphone iPhone开发中如何将制作图片放大缩小代码实现案例

    1:原文摘自:http://mobile.51cto.com/iphone-285108.htm iPhone开发中如何将制作图片放大缩小案例是本文要介绍的内容,主要是来学习iphone开发中动画的制 ...

  7. 点击图片放大缩小功能

    1.点击图片放大缩小的思路 图片部分: <table><div><img style="width:62px;height:83px;display:block ...

  8. html如何控制图片自动放缩,如何用js控制图片放大缩小

    js控制图片放大缩小的效果,可以通过JavaScript的width和height属性来实现.其属性可以实现按比例放大和缩小图像尺寸的功能. 在前面的文章中,也为大家介绍了JS获取图片当前宽高和JS获 ...

  9. 移动端查看预览图片放大缩小

    方法一 之前介绍过一款 移动端vue适用的插件大全 https://blog.csdn.net/MtangEr/article/details/85339092 里边有一篇是查看图片放大缩小的 htt ...

最新文章

  1. php使用workerman实战,使用workerman实现在线聊天的方法
  2. C++ multimap 的插入,遍历,删除
  3. Java中console类的简单用法
  4. 10 Reasons Why Your Projects Should Use the Dojo
  5. maven+springmvc+dubbo+zookeeper
  6. Python学习---面向对象的学习[深入]
  7. 自己动手写spring(三) 支持注解方式
  8. 【Android】选项卡使用
  9. [求助]关于服务器之间的文件拷贝问题,没有头绪,希望大家指点一二
  10. fiddle下载安装教程
  11. 超星高级语言程序设计实验作业 (实验03 模块化程序设计)
  12. 从天猫和支付宝身上学习opcity与rgba
  13. 微信小程序快速达到1000UV流量主开通标准
  14. 双足机器人课设报告_小型舞蹈双足机器人的设计及实现
  15. 微信模板消息 群发 突破 4条限制
  16. QQ飞车玩家各技术阶段
  17. windows 执行 bat命令问题
  18. 【2022秋招】IC设计/FPGA开发秋招经历总结(2)——公司专题
  19. 福州大学计算机考研资料汇总
  20. JUC并发编程系列详解篇十四(自旋锁 VS 适应性自旋锁)

热门文章

  1. C++中的构造函数小结
  2. 5.1 百度寻人 ios解析   和     天气预报解析
  3. C++ vector是什么?应该如何理解
  4. 输入字符串,找出该字符串中abc出现的位置
  5. Citrix XVA文件格式
  6. spring ioc控制反转
  7. 最新版本elasticsearch本地搭建入门篇
  8. python入门_老男孩_数据类型简介_int/bool/str转换_字符串索引和切片_字符串操作_day3...
  9. 整理自己的.net工具库
  10. vue2.0环境搭建