第53章、Matrix图形处理(从零开始学Android)
2015-06-13 22:01
295 查看
转自:http://blog.csdn.net/jianghuiquan/article/details/8569159
在android中通过Canvas显示图像我们已经明白了,但如果想让图像旋转、缩放、透明……,我们则要使用Matrix。
本案例让位图放大3倍。
一、程序文件
1、新建BitmapView.java文件。
在“src/com.genwoxue.matrix”位置,新建MatixView.java文件。
MatixView.java文件源代码如下:
[java] view
plaincopy
package com.genwoxue.matrix;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Color;
import android.view.View;
public class MatrixView extends View{
Paint paint=null;
Resources src=null;
Bitmap bmp=null;
public MatrixView(Context context) {
super(context);
/*----------------------------------------------
* 建议尽量把初始化画笔、资源、位图不放在onDraw方法中,这是因为:
* onDraw经常会运行 到的,不要在里面new对象,越少越好,不然很浪费内存
*--------------------------------------------*/
//获取画笔paint,初始化画笔
paint=new Paint();
//获取资源src
src=getResources();
// 获取位图
bmp=BitmapFactory.decodeResource(src, R.drawable.ic_launcher);
}
@Override
protected void onDraw(Canvas canvas){
//显示位图
canvas.drawBitmap(bmp,220,220,paint);
//初始化Matrix,放大3倍
Matrix matrix=new Matrix();
matrix.setScale(3f, 3f);
//显示放大3倍的位图
canvas.drawBitmap(bmp, matrix, null);
}
}
2、打开MainActivity.java主文件
打开“src/com.genwoxue.matrix/MainActivity.java”文件。
MainActivity.java文件源代码如下:
[java] view
plaincopy
package com.genwoxue.matrix;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//实例化GraphicsView
MatrixView mv = new MatrixView(this);
/* 在以前我们通过setContentView(R.layout.activity_main)显示布局文件
* 本例中使用GraphicsView对象gv代替以前布局文件
*/
setContentView(mv);
}
}
二、运行结果
在android中通过Canvas显示图像我们已经明白了,但如果想让图像旋转、缩放、透明……,我们则要使用Matrix。
本案例让位图放大3倍。
一、程序文件
1、新建BitmapView.java文件。
在“src/com.genwoxue.matrix”位置,新建MatixView.java文件。
MatixView.java文件源代码如下:
[java] view
plaincopy
package com.genwoxue.matrix;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Color;
import android.view.View;
public class MatrixView extends View{
Paint paint=null;
Resources src=null;
Bitmap bmp=null;
public MatrixView(Context context) {
super(context);
/*----------------------------------------------
* 建议尽量把初始化画笔、资源、位图不放在onDraw方法中,这是因为:
* onDraw经常会运行 到的,不要在里面new对象,越少越好,不然很浪费内存
*--------------------------------------------*/
//获取画笔paint,初始化画笔
paint=new Paint();
//获取资源src
src=getResources();
// 获取位图
bmp=BitmapFactory.decodeResource(src, R.drawable.ic_launcher);
}
@Override
protected void onDraw(Canvas canvas){
//显示位图
canvas.drawBitmap(bmp,220,220,paint);
//初始化Matrix,放大3倍
Matrix matrix=new Matrix();
matrix.setScale(3f, 3f);
//显示放大3倍的位图
canvas.drawBitmap(bmp, matrix, null);
}
}
2、打开MainActivity.java主文件
打开“src/com.genwoxue.matrix/MainActivity.java”文件。
MainActivity.java文件源代码如下:
[java] view
plaincopy
package com.genwoxue.matrix;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//实例化GraphicsView
MatrixView mv = new MatrixView(this);
/* 在以前我们通过setContentView(R.layout.activity_main)显示布局文件
* 本例中使用GraphicsView对象gv代替以前布局文件
*/
setContentView(mv);
}
}
二、运行结果
相关文章推荐
- 第52章、Bitmap图像处理(从零开始学Android)
- 第51章、绘制简单图形(从零开始学Android)
- Android代码中实现WAP方式联网(转载!)
- 第59章、SharedPreferences存储(从零开始学Android)
- Android 在Activity中对SQLite的操作
- 第24章、OnLongClickListener长按事件(从零开始学Android)
- 第25章、OnTouchListener触摸事件(从零开始学Android)
- Android 文件断点上传器[多用户并发访问]
- Android.mk 快速入门
- 第81章、Handle-Message-Looper消息机制之二(从零开始学Android)
- Android XML布局详解 - XML Layouts
- 第80章、Handle-Message-Looper消息机制之一(从零开始学Android)
- android XML布局大全
- Android之窗口样式设置
- Android LayoutInflater详解
- android自定义控件(六) 刷新
- android自定义控件(五) 自定义组合控件
- android自定义控件(四) View中的方法
- android自定义控件(三) 增加内容 自定义属性 format详解
- android自定义控件(三) 自定义属性