[1]旋转 
   

public class MainActivity extends Activity {

    private float degrees;// 图片旋转的角度
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //[1]找到我们关心的控件
ImageView iv_src = (ImageView) findViewById(R.id.iv_src);
final ImageView iv_copy = (ImageView) findViewById(R.id.iv_copy); //[2] 把tomcat.png 转换成bitmap 然后显示到iv_src
final Bitmap srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tomcat); //[2.1 test] 修改原图 原图不可以被修改
//srcBitmap.setPixel(20, 30, Color.RED); iv_src.setImageBitmap(srcBitmap); new Thread(){public void run() { for (int i = 0; i < 100; i++) { degrees += 5; //[3]拷贝原图 //[3.1]创建模板
final Bitmap copybitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());
//[3.2]想作画 需要一个画布 以copybitmap为模板
Canvas canvas = new Canvas(copybitmap);
//[3.3]创建一个画笔
Paint paint = new Paint();
//[3.4]开始作画 srcBitmap参考原图去画
Matrix matrix = new Matrix(); //[3.5]对图片进行旋转
matrix.setRotate(degrees, srcBitmap.getWidth()/2, srcBitmap.getHeight()/2);
canvas.drawBitmap(srcBitmap,matrix, paint); //☆ 注意不能在子线程更新ui
runOnUiThread(new Runnable() {
public void run() {
//这个方法里面的逻辑一定是在主线程执行
//[4]把copybitmap显示到iv_copy上
iv_copy.setImageBitmap(copybitmap); }
}); SystemClock.sleep(1000); } };}.start(); } }

  [2]缩放
    matrix.setScale(0.5f, 0.5f);

  [3]位移 
   matrix.setTranslate(20, 0);  
 
[4]倒影效果
// [3.5]对图片缩放处理
matrix.setScale(1.0f, -1.0f);
//让图片进行移动
//matrix.setTranslate(0, srcBitmap.getHeight());
//post是在上一次修改的基础上进行修改 set每次每次都是新的变化 会覆盖上一次修改
matrix.postTranslate(0, srcBitmap.getHeight());

 [5]镜面效果

        //[3.6]镜面效果
matrix.setScale(-1.0f, 1.0f);
matrix.postTranslate(srcBitmap.getWidth(), 0);
 

图形处理的api的更多相关文章

  1. PaaS 调研:GAE与 AWS(上)

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:韩伟 起因 PaaS作为"云"的概念,已经流行了很久.从使用的角度上看,似乎就是:写一个PHP,然后可以直接传到服务 ...

  2. day10 多媒体(文字 图片 音频 视频)

    1计算机表示图形的几种方式     bmp:以高质量保存     用于计算机     jpg:以良好的质量保存    用于计算机或者网络     png:以高质量保存     图片大小的计算公式:图片 ...

  3. iOS 图形处理 Core Graphics Quartz2D 教程

    Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘图.变换.颜色管理.脱屏 ...

  4. 【转】OPENGL基本API概述

    本文信息资源来源于网络,欢迎转载!转载时请保留本文链接(http://www.shopliyang.com.cn/)! OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库. gl是核 ...

  5. Java—图形处理

    抽象窗口化工具(AWT)为图形用户界面编程提供API编程接口,使得Java可以提供较好的图形用户界面. AWT把图形处理分为两个层次:一是处理原始图形,这一层较原始,图形直接以点.线和面的形式画到界面 ...

  6. DirectX API 编程起步 #02 窗口的诞生

    在这篇文章里我们先用 windows API 制作一个窗口出来,以后再用 DirectX API 渲染的东西就会显示在这里,控制台那黑白的画面肯定是没法用的. 每次的代码都会更新到Github 首先贴 ...

  7. 【OpenGL游戏开发之二】OpenGL常用API

    OpenGL常用API 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenGL ...

  8. canvas图形处理和进阶用法

    前面的话 上一篇博客介绍了canvas基础用法,本文将更进一步,介绍canvas的图形处理和进阶用法 图形变换 图形变换是指用数学方法调整所绘形状的物理属性,其实质是坐标变形.所有的变换都依赖于后台的 ...

  9. Android API 指南

    原文链接:http://android.eoe.cn/topic/android_sdk Android API 指南 - Android API Guides 应用的组成部分 - Applicati ...

随机推荐

  1. Oracle列操作引起的全表扫描

    首先是一种比较明显的情况: select * from table where column + 1 = 2 这里对column进行了列操作,加1以后,与column索引里的内容对不上,导致colum ...

  2. Spring AOP:面向切面编程,AspectJ,是基于注解的方法

    面向切面编程的术语: 切面(Aspect): 横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象 通知(Advice): 切面必须要完成的工作 目标(Target): 被通知的对象 代理(Pr ...

  3. 【20160924】GOCVHelper MFC增强算法(3)

        //获得当前目录路径     static CString GetLocalPath(){         CString csCfgFilePath;         GetModuleFi ...

  4. register_chrdev、register_chrdev_region以及alloc_chrdev_region之间的区别

    register_chrdev:Linux2.6.30之前所用,不用定义cdev:但 如果是register_chrdev 注册的话,这个时候,分配的次设备号,是从0~255,这样子的话,就分配的范围 ...

  5. SharePoint自动化系列——Select-option标签的定位方法总结

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ C#中通过Selenium定位页面上的select-option结构,尝试了以下几种方法,均没有生 ...

  6. 如何借助浏览器Console使用Js进行定位和操作元素

    在进行Selenium自动化过程中,我们很难避免一些webdriver 很难定位到的一些元素(如:默认隐藏属性元素),那对于一些比较难定位到的元素,有什么好的解决办法?     其实我们都知道,Sel ...

  7. Nhibernate中CreateSQLQuery用法实例

    说明: 使用原生SQL查询时,若要通过addEntity方法引入对象,则查询结果列中必须包含该对象的所有属性,否则会抛出System.IndexOutOfRangeException异常. 结论: 若 ...

  8. spring事务之——spring配置事务的五种方式

    Spring配置文件中关于事务配置总是由三个部分组成,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSo ...

  9. Objective-C之category

    http://blog.csdn.net/siemenliu/article/details/7835808

  10. memcached完全剖析系列——一、memcached基础

    转自:http://blog.charlee.li/memcached-001/