Android中ImageView的旋转与缩放
说明在代码中已经注释
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的旋转与缩放相关推荐
- Android 中 ImageView 的基本使用
Android 中 ImageView 的基本使用 1. 常用属性 2. 加载网络照片 1. 常用属性 常用的 scaleType 的属性值: fitXY: 撑满控件, 宽高比可能发生改变 fitCe ...
- android中view用法,Android中ImageView用法实例分析
本文实例分析了Android中ImageView用法.分享给大家供大家参考,具体如下: 猜牌游戏大家可能以前都玩过,这里我们用这个小游戏来说明ImageView的用法. 首先,在res/drawabl ...
- Android中实现图片平移、缩放、旋转同步进行
转载请注明转自:noyet12的博客 博客原址:http://blog.csdn.net/u012975705/article/details/49797911 源码下载地址: (github)htt ...
- Android中ImageView的scaleType 属性说明。
ImageView是Android中最常用的控件之一,在使用ImageView的时候,必不可少的会使用到scaleType属性,该属性指定了你的ImageView如何显示图片.包括是否进行缩放,等比缩 ...
- android 实现异步加载图片,Android中ImageView异步加载图片类
本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...
- Android中ImageView的点击变暗效果
实现点击图片(ImageView)变暗效果,有一个较简单的方法,就是讲目标图片设置为背景图片(setBackground),再创建一个selector.xml文件,里面放置一张普通状态时的透明图片,一 ...
- android本地图片,Android中ImageView实现选择本地图片并显示功能
运行结果: 模拟器图库就三张 没办法~画质挺感人~ 一个隐式意图 布局文件: xmlns:tools="http://schemas.android.com/tools" andr ...
- Android中控制屏幕旋转的相关设置
转自:http://blog.csdn.net/u012364372/article/details/51088831 一.设定屏幕方向 当指定了屏幕的方向后,屏幕就不会自动的旋转了 有2种方式控制屏 ...
- android 中ImageView的scaletype属性
ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType).android:scaleType是控制图片如何 ...
最新文章
- 修改shell命令提示符和命令的输入颜色
- unoconv执行出错unable to connect or start own listener
- pycharm中的settings没有latest version_k8s集群中pod镜像版本检查
- python随机数小游戏
- 在C#中嵌入Flash对象时遇到未能导入activex 控件的问题
- 一个iOS开发者的Flutter“历险记”
- 自行车中的物理知识汇总
- 网页中播放RTSP(1)
- 大龄程序员的一些出路
- windows 修改密码 在计算机管理中,管理员如何在Windows 10中更改其他用户的密码...
- java发送图片_Java发送邮件(图片、附件、HTML)
- CSDN博客专用动态图小程序的推荐---ScreentoGIF教程
- java学习路线规划
- 数字电路要点总结-TTL电路分析
- 关于Win7 x64下过TP保护(应用层)(转)
- “统信杯” 第十七届黑龙江省大学生程序设计竞赛 Let‘s Swap
- 首发Cocos2d-x C++版仿《王者之剑》实现v1.0.1版
- MinClock迷你桌面时钟1.5
- 数据预处理过程中处理方法
- 用Python编写带GUI界面的漏洞检测工具(Struts2)
热门文章
- revit如何根据坐标进行画线_铭成教你如何根据同步带的齿形进行选型
- CoreJava 笔记总结-第五章 继承
- c语言程序设计7.4思考题答案,C语言程序设计习题集及答案(7)
- Deeplab训练时候unexpected label
- P1989 无向图三元环计数 思维 + 建图
- CF1157G. Inverse of Rows and Columns
- [JLOI2016]成绩比较
- P4878 [USACO05DEC]Layout G
- YBTOJ:彩球抽取(期望)
- P5659-[CSP-S2019]树上的数【贪心】