【Android入门 十】绘制图片和图片旋转

首先简略说明绘制图片:

由于canvas.drawBitmap(bitmap, src, dst, paint);有四个参数所以大体有四五步。

1、通过getResource()方法得到drawable文件夹里BitmapDrawable类型的对象

2、将BitmapDrawable类型转化为Bitmap类型的对象

3、创建src, dst,两个长方形,src是指在原图形上截得的图片,dst是指贴到目标位置的长方形。

4、图片的画笔一般为null。

5、调用canvas.drawBitmap(bitmap, src, dst, paint)方法。

接着说明如何使图片旋转:

主要是通过matrix矩阵。

1、创建矩阵对象

2、确定旋转方向

3、画布canvas设置矩阵

注意:在canvas.setMatrix(matrix);后的canvas画的任何图形都会旋转。

再画完想要旋转的图像后,调用canvas.setMatrix(null);方法,取消画布的旋转效果。

实例代码:

/*
			 * 插入图片
			 */

			BitmapDrawable drawable = (BitmapDrawable)getResources().getDrawable(R.drawable.girls);
			Bitmap bitmap = drawable.getBitmap();
			Rect src = new Rect(0,0,440,320);
			Rect dst = new Rect(maxLeft, maxUp, maxRight, maxBottom);

			Matrix matrix = new Matrix();
			matrix.setRotate(45, 0, 0);
			canvas.setMatrix(matrix);
			canvas.drawBitmap(bitmap, src, dst, null);
			//
			canvas.setMatrix(null);

谢谢~

时间: 2024-10-19 00:49:44

【Android入门 十】绘制图片和图片旋转的相关文章

Android入门(十二)SQLite事务、升级数据库

原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可以先使用delete()方法将Book表中的数据删除, 然后再使用insert()方法将新的数据添加到表中.我们要保证的是,删除旧数据和添加新数据的操作必须一起完成,否则就还要继续保留原来的旧数据.                 Button replaceData = (Button) find

Android入门(十六)调用摄像头相册

原文链接:http://www.orlion.ga/665/ 一.调用摄像头 创建一个项目ChoosePicDemo,修改activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent&qu

Android入门(十)SQLite创建升级数据库

原文链接:http://www.orlion.ga/603/ 一.创建数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类, 借助这个类就可以非常简单地对数据库进行创建和升级. SQLiteOpenHelper是一个抽象类,其中有两个抽象方法分别是onCreate()和onUpgrade(),分别在这两个方法中实现创建和升级数据库的逻辑 SQLiteOpenHelper还有两个十分重要的实例方法,getReadableDatabase(

Android入门(十八)服务

原文链接:http://www.orlion.ga/674/ 一.定义一个服务 创建一个项目ServiceDemo,然后在这个项目中新增一个名为 MyService的类,并让它继承自 Service,完成后的代码如下所示: public class MyService extends Service {     @Override     public IBinder onBind(Intent intent) {         return null;     } } onBind()方法是

Android入门(十五)通知

原文链接:http://www.orlion.ga/663/ 1.通知的基本用法 创建通知的步骤,首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到.getSystemService()方法接收到一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICATION_SERVICE即可,因此获取NotificationManager的实例就可以写成: NotificationManag

Android入门(十四)内容提供器-实现跨程序共享实例

原文链接:http://www.orlion.ga/661/ 打开SQLite博文中创建的 DatabaseDemo项目,首先将 MyDatabaseHelper中使用 Toast弹出创建数据库成功的提示去除掉,因为跨程序访问时我们不能直接使用 Toast.然后添加一个 DatabaseProvider类,代码如下所示: package ga.orlion.databasedemo; import android.content.ContentProvider; import android.c

android animation应用——图片绕固定点旋转

一.功能:实现将图片绕固定点旋转,圈数随机,onTouch后旋转. 二.程序框架: 组成 功能 主Activity:MyActivity 1.实现animation 2.实现onTouch View       :MyView 1.将突破绘制到MyView上 三.程序源代码: MyVIew.java package com.androids.kavinapps.myapplication; import android.content.Context; import android.graphi

android开发步步为营之58:给图片绘制圆形气泡背景效果

最近在开发项目的时候,有一个需求,需要给应用图标绘制圆形气泡背景,有了彩色气泡这样显得漂亮一点,气泡的颜色是应用图标的颜色均值,先看看效果,然后,我再给出demo. demo应用图标是这样的: 添加气泡背景后是这样的: 仔细看圆形背景颜色是图标颜色的均值. 好的,下面我们来完成这个demo. 第一步.编写页面activity_drawcycle.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa

Android中绘制圆角矩形图片及任意形状图片

圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,因为它避开了直角的生硬,带来更好的用户体验,下面是几个设计的例子: 下面在Android中实现将普通的矩形图片绘制成圆角矩形.首先看最终效果: 代码清单: package com.example.phototest; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android