位图的缩放也可以借助Matrix或者Canvas来实现。

通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后用drawBitmap方法绘制到屏幕上,于是就实现了缩放操作。

下面例子中把原位图和经缩放处理的位图都绘制到屏幕上,目的是做一个对比。

  1. package xiaosi.bitmap;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. public class mianActivity extends Activity
  5. {
  6. private BitmapView bitmapView = null;
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState)
  9. {
  10. super.onCreate(savedInstanceState);
  11. bitmapView = new BitmapView(this);
  12. setContentView(bitmapView);
  13. }
  14. }

BitmapView.Java

  1. package xiaosi.bitmap;
  2. import android.content.Context;
  3. import android.content.res.Resources;
  4. import android.graphics.Bitmap;
  5. import android.graphics.BitmapFactory;
  6. import android.graphics.Canvas;
  7. import android.graphics.Color;
  8. import android.graphics.Matrix;
  9. import android.view.View;
  10. public class BitmapView extends View
  11. {
  12. public BitmapView(Context context)
  13. {
  14. super(context);
  15. }
  16. //重写onDraw方法
  17. public void onDraw(Canvas canvas)
  18. {
  19. // 获取资源文件的引用res
  20. Resources res = getResources();
  21. // 获取图形资源文件
  22. Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.h);
  23. // 设置canvas画布背景为白色
  24. canvas.drawColor(Color.BLACK);
  25. // 在画布上绘制缩放之前的位图,以做对比
  26. //屏幕上的位置坐标是0,0
  27. canvas.drawBitmap(bmp, 0, 0, null);
  28. // 定义矩阵对象
  29. Matrix matrix = new Matrix();
  30. // 缩放原图
  31. matrix.postScale(0.5f, 0.3f);
  32. //bmp.getWidth(), bmp.getHeight()分别表示缩放后的位图宽高
  33. Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
  34. matrix, true);
  35. // 在画布上绘制旋转后的位图
  36. //放在坐标为60,460的位置
  37. canvas.drawBitmap(dstbmp, 60, 460, null);
  38. }
  39. }

源代码下载:点击打开链接

Android 学习笔记之Bitmap位图的缩放的更多相关文章

  1. Android学习笔记之Bitmap位图的缩放

    位图的缩放也可以借助Matrix或者Canvas来实现. 通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后 ...

  2. Android 学习笔记之Bitmap位图的旋转

    位图的旋转也可以借助Matrix或者Canvas来实现. 通过postRotate方法设置旋转角度,然后用createBitmap方法创建一个经过旋转处理的Bitmap对象,最后用drawBitmap ...

  3. Android学习笔记之Bitmap位图的旋转

    位图的旋转也可以借助Matrix或者Canvas来实现. 通过postRotate方法设置旋转角度,然后用createBitmap方法创建一个经过旋转处理的Bitmap对象,最后用drawBitmap ...

  4. Android 学习笔记之Bitmap位图虽触摸点移动

    package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mianActiv ...

  5. Android学习笔记之Bitmap位图虽触摸点移动

    package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mianActiv ...

  6. Android学习笔记_55_Tween动画 (渐变、缩放、位移、旋转)

    Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变).第二类就是 Frame动画,即顺序的播放事先做好的图像,与gi ...

  7. Android学习笔记进阶18 之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  8. Android学习笔记进阶18之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  9. 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter

    目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...

随机推荐

  1. Linux环境下源码安装PostgreSQL

    1.下载PostgreSQL源码包,并保存到Linux操作系统的一个目录下 2.解压PostgreSQL源码包 :tar zxvf postgresql-9.2.4.tar.gz 或 tar jxvf ...

  2. 三分钟明白 Activiti工作流 -- java运用_转载

    一. 什么是工作流 以请假为例,现在大多数公司的请假流程是这样的 员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电脑 采用工作 ...

  3. linux下搭建NFS服务器

    服务端:10.6.191.183 客户端:10.6.191.182 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984 ...

  4. 题解 P3372 【【模板】线段树 1】(珂朵莉树解法)

    这道题可以用珂朵莉树做,但是由于数据比较不随机,而我也没有手写一颗平衡树,所以就被卡掉了,只拿了70分. 珂朵莉树是一种基于平衡树的(伪)高效数据结构. 它的核心操作是推平一段区间. 简而言之,就是把 ...

  5. 【CS Round #36 (Div. 2 only) A】Bicycle Rental

    [题目链接]:https://csacademy.com/contest/round-36/task/bicycle-rental/ [题意] 让你从n辆车中选一辆车; 每一辆车有3个属性 1.到达车 ...

  6. Cocos2d-x 3.0 Schedule in Node

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  7. 查看SQLSERVER当前正在运行的sql信息

    能够使用SQL Profiler捕捉在SQL Server实例上运行的活动.这种活动被称为Profiler跟踪.这个就不多说了,大家都知道,以下是使用代码为实现同样的效果. SET TRANSACTI ...

  8. Ubuntu 经常使用软件安装

    Chromium 14.04+ FlashPlayer 原理 就是安装一个flash插件而已啊,网上都没有详解. 我们首先在浏览器地址栏输入chrome://plugins, 全部插件都会展示出来了. ...

  9. 零基础学python-5.6 数字位操作与其它工具

    1.位运算 python能够把整数当成二进制位来对待 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/ ...

  10. File的getPath()和getAbsolutePath()和getCanonicalPath()的差别

    这几个方法是有一次无意的发现,我当时也不知道什么意思,就百度了,查到了一些列子: 原文地址http://www.blogjava.net/dreamstone/archive/2007/08/08/1 ...