`
zhangle2612
  • 浏览: 23367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Bitmap和Matrix旋转图片

阅读更多
public class RotateImageViewActivity extends Activity {

private Button mButton1;
private Button mButton2;
private TextView mTextView;
private ImageView mImageView;
private int scaleTimes;
private int scaleAngle;


protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.rotate_image);

mButton1 = (Button) findViewById(R.id.rotate_image_Button1);
mButton2 = (Button) findViewById(R.id.rotate_image_Button2);
mImageView = (ImageView) findViewById(R.id.rotate_image_ImageView);
mTextView = (TextView) findViewById(R.id.rotate_image_TextView1);
scaleTimes = 2;
scaleAngle = 1;

Log.v("Lowry", "==================="+mButton1.toString());

final Bitmap mySourceBmp = BitmapFactory.decodeResource(getResources(), R.drawable.hippo);
final int widthOrig = mySourceBmp.getWidth();
final int heightOrig = mySourceBmp.getHeight();

mButton1.setOnClickListener(new OnClickListener(){

public void onClick(View v) {
scaleAngle--;
if(scaleAngle<-5){
scaleAngle=-5;
}//根据旋转次数记录旋转的角度


int newWidth = widthOrig*scaleTimes;
int newHeight = heightOrig*scaleTimes;

float scaleWidth = ((float)newWidth)/widthOrig;
float scaleHeight = ((float)newHeight)/heightOrig;

Log.i("Lowry", "++++widthOrig="+widthOrig+";heightOrig="
+heightOrig+";newWidth="+newWidth+";newHeight="+newHeight+";scaleWidth="+scaleWidth);

Matrix mt = new Matrix();
mt.postScale(scaleWidth, scaleHeight);
//mt.setScale(2.0f,2.0f);设置图片的比例
mt.setRotate(20*scaleAngle);
//mt.postRotate(20*scaleAngle)与其同意,设置旋转的角度
Bitmap newSizeBitmap = Bitmap.createBitmap(mySourceBmp,0,0,widthOrig,heightOrig,mt,true);
//根据原来的Bitmap,mt,生成新的Bitmap对象

BitmapDrawable bd = new BitmapDrawable(newSizeBitmap);

mImageView.setImageDrawable(bd);
mTextView.setText(Integer.toString(20*scaleAngle));


}

});


mButton2.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
scaleAngle++;
if(scaleAngle>5){
scaleAngle = 5;
}

int newWidth = widthOrig*scaleTimes;
int newHeight = heightOrig*scaleTimes;

float scaleWidth = ((float)newWidth)/widthOrig;
float scaleHeight = ((float)newHeight)/heightOrig;


Matrix mt = new Matrix();
mt.postScale(scaleHeight, scaleWidth);
mt.setRotate(20*scaleAngle);

Bitmap newb = Bitmap.createBitmap(mySourceBmp,0,0, widthOrig, heightOrig, mt, true);

BitmapDrawable bd = new BitmapDrawable(newb);

mImageView.setImageDrawable(bd);

mTextView.setText(Integer.toString(20*scaleAngle));


}

});


}

}
分享到:
评论

相关推荐

    android 动态旋转图片 Bitmap与Matrix旋转ImageView

    android 动态旋转图片 Bitmap与Matrix旋转ImageView

    Android开发之图片旋转功能实现方法【基于Matrix】

    本文实例讲述了Android开发之图片旋转功能实现方法。分享给大家供大家参考,具体如下: 在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配。Matrix ,中文里叫矩阵,高等...

    Android 使用Matrix.postRotate方法旋转图片.rar

    Android图像操作一例,使用Matrix.postRotate方法旋转图片,这些的图片格式是BMP,其它格式可能也能用吧,没测试,旋转BMP图片的效果如截图所示,用户单击向左或向右按钮后,图片旋转90度,旋转角度根据自己需要...

    如何使用Matrix对bitmap的旋转与镜像水平垂直翻转

    Bitmap convert(Bitmap a, int width, int height){int w = a.getWidth();int h = a.getHeight();...Matrix m = new Matrix();m.postScale(1, -1); //镜像垂直翻转m.postScale(-1, 1); //镜像水平翻转m.postRotate(-

    Android中Bitmap常见的一些操作:缩放、裁剪、旋转和偏移

    Bitmap相信对各位Android开发者们来说都不陌生,用它可以获取图片信息,进行图片剪切、平移、旋转、缩放等操作,并可以指定格式保存图片文件。本文将对它的一些常见操作进行总结,下面话不多说了,来一起看看详细的...

    Android 图片Bitmap的剪切的示例代码

    public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) 从原始位图剪切图像,这是一种高级的方式。可以用Matrix(矩阵)来实现旋转等高级方式截图 ...

    Android中利用matrix 控制图片的旋转、缩放、移动

    本文主要讲解利用android中Matrix控制图形的旋转缩放移动,具体参见一下代码: 代码如下:/** * 使用矩阵控制图片移动、缩放、旋转 */ public class CommonImgEffectView extends View { private Context context ;...

    android bitmap

    android 图片的放大,缩小,旋转功能!

    Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理

    本项目是一个图片处理的...一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3

    Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理.zip

    本项目是一个图片处理的...一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3

    图片旋转缩放加盖水印透明倾斜扭曲处理.zip

    一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3。  

    android中Bitmap用法(显示,保存,缩放,旋转)实例分析

    在Android SDK中可以支持的图片格式如下:png , jpg , gif和bmp。 1.Bitmap的创建 借助于BitmapFactory。 1)资源中的图片 使用BitmapFactory获取位图 代码如下:Bitmap bmp = BitmapFactory.decodeResource(this....

    Android开发实现图片平移、缩放、倒影及旋转功能的方法

    本文实例讲述了Android开发实现图片平移、缩放、倒影及旋转功能的方法。分享给大家供大家参考,具体如下: 解析: 1)根据原来的图片创建新的图片 Bitmap modBm = Bitmap.createBitmap(bm.getWidth()+20, bm....

    [Android View] 判断是否点中一个动态可旋转、可缩放、可移动的图片

    如果一个图片只是简单的移动,这个很容易就可以判断出触控点是否落在绘制bitmap的矩形区域,但这个bitmap能动态旋转、缩放那就不能用老一套的方法了。 图片左上角的点在图片旋转之后A的坐标落在哪里?图片缩放后A又...

    带有倒影的Gallery

    // -1表示在y轴上相反,即旋转180度。 matrix.preScale(1, -1); //reflectionImage就是下面那个透明的倒影,宽为图片本来的宽度,高是图片高度的一半 //从height/2的高度开始到高度为(height/2)+...

    Android 图片添加水印的实现方法

    手机端打水印(文字和图片)使用的是Bitmap、Matrix和Canvas类的一些方法, 可以实现拉伸、旋转、位移等等效果。 原理很简单, 就是在画布Canvas上绘制图形、图片、文字等等, 得到你想要的效果图片。 百度搜索图片打...

    Android自定义View实现QQ音乐中圆形旋转碟子

    QQ音乐中圆形旋转碟子 思路分析: 1、在onMeasure中测量整个View的宽和高后,设置宽高 2、获取我们res的图片资源后,在ondraw方法中进行绘制圆形图片 3、通过Handler发送Runnable来启动旋转线程...Matrix matrix = new

    图片旋转缩放加盖水印透明倾斜扭曲处理

    图片旋转缩放加盖水印...一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3。

    Android开发应用实战详解源代码

    4.19 bitmap和matrix图片旋转 4.20 加载手机存储卡中的文件 4.21 小结 第5章 交互式服务 5.1 textview的花样 5.2 拨打电话程序 5.3 短信发送程序 5.4 e-mail发送程序 5.5 实现手机震动效果 5.6 图文提醒效果 5.7 ...

    Android实现图片反转、翻转、旋转、放大和缩小

    ********************************************************************** android 实现图片的翻转 ********************************************************************** ... Matrix matrix = new Matrix();

Global site tag (gtag.js) - Google Analytics