说明在代码中已经注释

XML代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><ImageViewandroid:id="@+id/iv_pic"android:layout_width="match_parent"android:layout_height="200dip"android:background="@android:color/black"android:scaleType="fitCenter"android:src="@drawable/bg"/><!-- 设置图片的显示方式:把图片按比例扩大/缩小到view的宽度,居中显示 --><LinearLayoutandroid:layout_marginTop="310dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><SeekBarandroid:id="@+id/sb_one"android:layout_width="match_parent"android:layout_height="wrap_content"android:progress="100"/><TextViewandroid:id="@+id/text1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginTop="15dp"android:text="拖动来缩放图片"android:textColor="@android:color/black"android:textSize="20dp"/><SeekBarandroid:id="@+id/sb_two"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="15dp"android:progress="50"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginTop="15dp"android:text="拖动来旋转图片"android:textColor="@android:color/black"android:textSize="20dp"/></LinearLayout>
</RelativeLayout>

Activity代码

package com.zjs.imagerotate;import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.SeekBar;public class MainActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {private ImageView iv_pic;private SeekBar sb_one;private SeekBar sb_two;private Matrix matrix;@Overrideprotected void onCreate(Bundle savedInstanceState) {setTitle("imageView实现图片缩放和旋转");super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv_pic = (ImageView) findViewById(R.id.iv_pic);sb_one = (SeekBar) findViewById(R.id.sb_one);sb_two = (SeekBar) findViewById(R.id.sb_two);//设置SeekBar的progress值改变监听事件sb_one.setOnSeekBarChangeListener(this);sb_two.setOnSeekBarChangeListener(this);matrix = new Matrix();//    1)设置图片放大缩小效果 ////    第一步:将<ImageView>标签中的android:scaleType设置为"fitCenter" ////    第二步:获取屏幕的宽度 ////    第三步:设置seekBar的最大progree值为屏幕宽度 ////    第四步:设置imageview的布局参数,也就是宽和高,也就是画布的宽高// 设置图片放大缩小效果// 第一步:获取屏幕的宽度DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);// 第二步:设置seekBar的最大progree值为屏幕宽度sb_one.setMax(dm.widthPixels);}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {// TODO Auto-generated method stubswitch (seekBar.getId()) {case R.id.sb_one:// 放大或缩小int width = progress;int height = progress * 3 / 4;// 第三步:设置imageview的布局参数,也就是宽和高,也就是画布的宽高iv_pic.setLayoutParams(new RelativeLayout.LayoutParams(width, height));break;case R.id.sb_two:// 旋转// 设置旋转度数// 设置图片旋转方法// 第一步:给matrix设置角度,用于新的bitmapmatrix.setRotate((int) (progress * 3.60));// 第二步:获取bitmap资源BitmapDrawable bitmapDrawable = (BitmapDrawable) (getResources().getDrawable(R.drawable.bg));Bitmap bitmap = bitmapDrawable.getBitmap();// 第三步:重建bitmap用于显示Bitmap newBitmap = bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, false);// 第四步:给imageview设置新的bitmapiv_pic.setImageBitmap(newBitmap);break;default:break;}}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {
//        TODO Auto -generated method stub}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {
//        TODO Auto -generated method stub}
}

效果图

Android中ImageView的旋转与缩放相关推荐

  1. Android 中 ImageView 的基本使用

    Android 中 ImageView 的基本使用 1. 常用属性 2. 加载网络照片 1. 常用属性 常用的 scaleType 的属性值: fitXY: 撑满控件, 宽高比可能发生改变 fitCe ...

  2. android中view用法,Android中ImageView用法实例分析

    本文实例分析了Android中ImageView用法.分享给大家供大家参考,具体如下: 猜牌游戏大家可能以前都玩过,这里我们用这个小游戏来说明ImageView的用法. 首先,在res/drawabl ...

  3. Android中实现图片平移、缩放、旋转同步进行

    转载请注明转自:noyet12的博客 博客原址:http://blog.csdn.net/u012975705/article/details/49797911 源码下载地址: (github)htt ...

  4. Android中ImageView的scaleType 属性说明。

    ImageView是Android中最常用的控件之一,在使用ImageView的时候,必不可少的会使用到scaleType属性,该属性指定了你的ImageView如何显示图片.包括是否进行缩放,等比缩 ...

  5. android 实现异步加载图片,Android中ImageView异步加载图片类

    本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...

  6. Android中ImageView的点击变暗效果

    实现点击图片(ImageView)变暗效果,有一个较简单的方法,就是讲目标图片设置为背景图片(setBackground),再创建一个selector.xml文件,里面放置一张普通状态时的透明图片,一 ...

  7. android本地图片,Android中ImageView实现选择本地图片并显示功能

    运行结果: 模拟器图库就三张 没办法~画质挺感人~ 一个隐式意图 布局文件: xmlns:tools="http://schemas.android.com/tools" andr ...

  8. Android中控制屏幕旋转的相关设置

    转自:http://blog.csdn.net/u012364372/article/details/51088831 一.设定屏幕方向 当指定了屏幕的方向后,屏幕就不会自动的旋转了 有2种方式控制屏 ...

  9. android 中ImageView的scaletype属性

    ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType).android:scaleType是控制图片如何 ...

最新文章

  1. 修改shell命令提示符和命令的输入颜色
  2. unoconv执行出错unable to connect or start own listener
  3. pycharm中的settings没有latest version_k8s集群中pod镜像版本检查
  4. python随机数小游戏
  5. 在C#中嵌入Flash对象时遇到未能导入activex 控件的问题
  6. 一个iOS开发者的Flutter“历险记”
  7. 自行车中的物理知识汇总
  8. 网页中播放RTSP(1)
  9. 大龄程序员的一些出路
  10. windows 修改密码 在计算机管理中,管理员如何在Windows 10中更改其他用户的密码...
  11. java发送图片_Java发送邮件(图片、附件、HTML)
  12. CSDN博客专用动态图小程序的推荐---ScreentoGIF教程
  13. java学习路线规划
  14. 数字电路要点总结-TTL电路分析
  15. 关于Win7 x64下过TP保护(应用层)(转)
  16. “统信杯” 第十七届黑龙江省大学生程序设计竞赛 Let‘s Swap
  17. 首发Cocos2d-x C++版仿《王者之剑》实现v1.0.1版
  18. MinClock迷你桌面时钟1.5
  19. 数据预处理过程中处理方法
  20. 用Python编写带GUI界面的漏洞检测工具(Struts2)

热门文章

  1. revit如何根据坐标进行画线_铭成教你如何根据同步带的齿形进行选型
  2. CoreJava 笔记总结-第五章 继承
  3. c语言程序设计7.4思考题答案,C语言程序设计习题集及答案(7)
  4. Deeplab训练时候unexpected label
  5. P1989 无向图三元环计数 思维 + 建图
  6. CF1157G. Inverse of Rows and Columns
  7. [JLOI2016]成绩比较
  8. P4878 [USACO05DEC]Layout G
  9. YBTOJ:彩球抽取(期望)
  10. P5659-[CSP-S2019]树上的数【贪心】