Android实现旋转,放大,缩小图片的方法
本文实例讲述了Android实现旋转,放大,缩小图片的方法。分享给大家供大家参考,具体如下:
项目中需要做到一个预览图片的功能
最初设想自定义个一个view,在onDraw中用的是生成新的Bitmap,来放大,缩小
但由于手机内存是有限制的,在放大几倍以后,就会core掉。
后面直接选用imageview来完成此项任务,很遗憾,虽然不会重复生成bitmap导致core掉,但是imageview的大小限制是图片无法再放大或放大也只能在这个区域中。
最后选定用 当然 Drawable来做了
private Drawable image; private int picWidth; private int picHeight; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //图片缩放使用 picwidth,picheight来控制 int l = (getWidth() - picWidth) / 2; int r = (getWidth() + picWidth) / 2; int t = (getHeight() - picHeight) / 2; int b = (getHeight() + picHeight) / 2; image.setBounds(l, t, r, b); canvas.rotate(rotateDegre, getWidth() / 2, getHeight() / 2); //旋转图片 image.draw(canvas); }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
相关推荐
-
Android中imageView图片放大缩小及旋转功能示例代码
一.简介 二.方法 1)设置图片放大缩小效果 第一步:将<ImageView>标签中的android:scaleType设置为"fitCenter" android:scaleType="fitCenter" 第二步:获取屏幕的宽度 DisplayMetrics dm=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); dm.widthPixels 第三
-
android图片处理之让图片一直匀速旋转
本文是在我的文章android图片处理,让图片变成圆形 的基础上继续写的,可以去看看,直接看也没关系,也能看懂 1.首先在res文件夹下创建一个名字为anim的文件夹,名字不要写错 2.在anim里面创建一个xlm文件:img_animation.xml,这个名字随便写都可以,注意不要大写,里面的代码如下: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http:/
-
Android开发之图片旋转功能实现方法【基于Matrix】
本文实例讲述了Android开发之图片旋转功能实现方法.分享给大家供大家参考,具体如下: 在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配.Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作.Matrix没有机构体,它必须初始化,然后通过reset方法和set方法来实现. 首先介绍一下矩阵运算.加法和减法就不用说了,太简单了,对应位相加就好.图像处理,主要用到的是乘法 .下面是一个乘法的公式
-
Android实现图片反转、翻转、旋转、放大和缩小
********************************************************************** android 实现图片的翻转 ********************************************************************** Resources res = this.getContext().getResources(); img = BitmapFactory.decodeResource(res, R.
-
Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍
主要介绍Android中如何使用rotate实现图片不停旋转的效果.Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果:第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似.本文分析 Tween动画的rotate实现旋转效果. 在新浪微博客户端中各个操作进行中时activity的右上角都会有个不停旋转的图标,类似刷新的效果,给用户以操作中的提示.这种非模态的提示方式推荐使用,那么下面就分享下如何实现这种效果
-
Android单点触控实现图片平移、缩放、旋转功能
相信大家使用多点对图片进行缩放,平移的操作很熟悉了,大部分大图的浏览都具有此功能,有些app还可以对图片进行旋转操作,QQ的大图浏览就可以对图片进行旋转操作,大家都知道对图片进行缩放,平移,旋转等操作可以使用Matrix来实现,Matrix就是一个3X3的矩阵,对图片的处理可分为四个基础变换操作,Translate(平移变换).Rotate(旋转变换).Scale (缩放变换).Skew(错切变换),如果大家对Matrix不太了解的话可以看看这篇文章(点击查看),作者对每一种Matrix的变换写
-
Android 图片缩放与旋转的实现详解
本文使用Matrix实现Android实现图片缩放与旋转.示例代码如下: 复制代码 代码如下: package com.android.matrix;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.graphics.drawable.BitmapDrawable
-
Android中利用matrix 控制图片的旋转、缩放、移动
本文主要讲解利用android中Matrix控制图形的旋转缩放移动,具体参见一下代码: 复制代码 代码如下: /** * 使用矩阵控制图片移动.缩放.旋转 */ public class CommonImgEffectView extends View { private Context context ; private Bitmap mainBmp , controlBmp ; private int mainBmpWidth , mainBmpHeight , c
-
Android使用Matrix旋转图片模拟碟片加载过程
今天实现了一个模拟碟片加载过程的小demo,在此展示一下.由于在公司,不好截取动态图片,因此就在这截取两张静态图片看看效果先. 下面简单的将代码列出来. setp1.准备两张用于旋转的图片,如下:loading_disc.png是第一张图片,loading_light.png是第二张图片. step2.自定义一个View,用来控制这两个图片的旋转.com.oyp.loadingdisk.LoadingDiscView.java package com.oyp.loadingdisk;
-
基于Android 实现图片平移、缩放、旋转同时进行
前言 之前因为项目需求,其中使用到了图片的单击显示取消,图片平移缩放功能,昨天突然想再加上图片的旋转功能,在网上看了很多相关的例子,可是没看到能同时实现我想要的功能的. 需求: (1)图片平移.缩放.旋转等一系列操作后,图片需要自动居中显示. (2)图片旋转后选自动水平显示或者垂直显示 (3)图片在放大缩小的同时都能旋转 Demo实现部分效果截图 Demo主要代码 Java MainActivity.java package com.practice.noyet.rotatezoomimagev
-
Android实现对图片放大、平移和旋转的功能
先来看看要实现的效果图 在讲解中,需要大家提前了解一些关于图片绘制的原理的相关知识. 关于实现的流程 1.自定义View 2.获得操作图片的Bitmap 3.复写View的onTouchEvent()方法中的ACTION_DOWN,ACTION_POINTER_DOWN,ACTION_MOVE,ACTION_POINTER_UP以及ACTION_UP事件. 4.定义相应图片变化的Matrix矩阵,通过手势操作的变化来设置相应的Matrix. 5.完成最终的Matrix设置时,通过invalida
随机推荐
- vmware Workstation安装教程
- w3c技术架构介绍
- win2003下杀任何进程的命令(taskkill,ntsd)
- 使用SQL查询DB2 9中的XML数据
- IOS开发代码分享之设置UISearchBar的背景颜色
- C++中的while循环和for循环语句学习教程
- kvm安装和删除虚拟机的方法
- 一个JavaScript函数把URL参数解析成Json对象
- Javascript中的Array数组对象详谈
- Mysql中新建用户及授权的方法分享
- 光标的一些操作总结
- javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
- PHP实现的增强性mhash函数
- 微信小程序与php 实现微信支付的简单实例
- jQuery响应enter键的实现思路
- JavaScript中的原始值和复杂值
- Bootstarp 基础教程之表单部分实例代码
- Python实现简单字典树的方法
- html+js实现动态显示本地时间
- 利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解