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开发之图片旋转功能实现方法。分享给大家供大家参考,具体如下: 在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配。Matrix ,中文里叫矩阵,高等...
Android图像操作一例,使用Matrix.postRotate方法旋转图片,这些的图片格式是BMP,其它格式可能也能用吧,没测试,旋转BMP图片的效果如截图所示,用户单击向左或向右按钮后,图片旋转90度,旋转角度根据自己需要...
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(-
Bitmap相信对各位Android开发者们来说都不陌生,用它可以获取图片信息,进行图片剪切、平移、旋转、缩放等操作,并可以指定格式保存图片文件。本文将对它的一些常见操作进行总结,下面话不多说了,来一起看看详细的...
public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) 从原始位图剪切图像,这是一种高级的方式。可以用Matrix(矩阵)来实现旋转等高级方式截图 ...
本文主要讲解利用android中Matrix控制图形的旋转缩放移动,具体参见一下代码: 代码如下:/** * 使用矩阵控制图片移动、缩放、旋转 */ public class CommonImgEffectView extends View { private Context context ;...
android 图片的放大,缩小,旋转功能!
本项目是一个图片处理的...一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3
本项目是一个图片处理的...一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3
一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3。
在Android SDK中可以支持的图片格式如下:png , jpg , gif和bmp。 1.Bitmap的创建 借助于BitmapFactory。 1)资源中的图片 使用BitmapFactory获取位图 代码如下:Bitmap bmp = BitmapFactory.decodeResource(this....
本文实例讲述了Android开发实现图片平移、缩放、倒影及旋转功能的方法。分享给大家供大家参考,具体如下: 解析: 1)根据原来的图片创建新的图片 Bitmap modBm = Bitmap.createBitmap(bm.getWidth()+20, bm....
如果一个图片只是简单的移动,这个很容易就可以判断出触控点是否落在绘制bitmap的矩形区域,但这个bitmap能动态旋转、缩放那就不能用老一套的方法了。 图片左上角的点在图片旋转之后A的坐标落在哪里?图片缩放后A又...
// -1表示在y轴上相反,即旋转180度。 matrix.preScale(1, -1); //reflectionImage就是下面那个透明的倒影,宽为图片本来的宽度,高是图片高度的一半 //从height/2的高度开始到高度为(height/2)+...
手机端打水印(文字和图片)使用的是Bitmap、Matrix和Canvas类的一些方法, 可以实现拉伸、旋转、位移等等效果。 原理很简单, 就是在画布Canvas上绘制图形、图片、文字等等, 得到你想要的效果图片。 百度搜索图片打...
QQ音乐中圆形旋转碟子 思路分析: 1、在onMeasure中测量整个View的宽和高后,设置宽高 2、获取我们res的图片资源后,在ondraw方法中进行绘制圆形图片 3、通过Handler发送Runnable来启动旋转线程...Matrix matrix = new
图片旋转缩放加盖水印...一共两个图片,基本图片和logo(水印使用)。技术:ImageView,Bitmap,Canvas,Matrix,httpclient来实现其基本功能。部分有注释,例子;来自哪里也还有说明。本项目编码GBK编译版本4.0.3。
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 实现图片的翻转 ********************************************************************** ... Matrix matrix = new Matrix();