第52章,bitmap图像处理(从零开始学android),第53章、Matrix图形处理(从零开始学Android)...

在android中通过Canvas显示图像我们已经明白了,但如果想让图像旋转、缩放、透明……,我们则要使用Matrix。

本案例让位图放大3倍。

一、程序文件

1、新建BitmapView.java文件。

在“src/com.genwoxue.matrix”位置,新建MatixView.java文件。

0818b9ca8b590ca3270a3433284dd417.png

MatixView.java文件源代码如下:

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文件源代码如下:

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);

}

}

二、运行结果

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值