图形处理的api
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();
    }
}
[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的更多相关文章
- PaaS 调研:GAE与 AWS(上)
		欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:韩伟 起因 PaaS作为"云"的概念,已经流行了很久.从使用的角度上看,似乎就是:写一个PHP,然后可以直接传到服务 ... 
- day10 多媒体(文字 图片 音频 视频)
		1计算机表示图形的几种方式 bmp:以高质量保存 用于计算机 jpg:以良好的质量保存 用于计算机或者网络 png:以高质量保存 图片大小的计算公式:图片 ... 
- iOS 图形处理 Core Graphics Quartz2D 教程
		Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘图.变换.颜色管理.脱屏 ... 
- 【转】OPENGL基本API概述
		本文信息资源来源于网络,欢迎转载!转载时请保留本文链接(http://www.shopliyang.com.cn/)! OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库. gl是核 ... 
- Java—图形处理
		抽象窗口化工具(AWT)为图形用户界面编程提供API编程接口,使得Java可以提供较好的图形用户界面. AWT把图形处理分为两个层次:一是处理原始图形,这一层较原始,图形直接以点.线和面的形式画到界面 ... 
- DirectX API 编程起步 #02 窗口的诞生
		在这篇文章里我们先用 windows API 制作一个窗口出来,以后再用 DirectX API 渲染的东西就会显示在这里,控制台那黑白的画面肯定是没法用的. 每次的代码都会更新到Github 首先贴 ... 
- 【OpenGL游戏开发之二】OpenGL常用API
		OpenGL常用API 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenGL ... 
- canvas图形处理和进阶用法
		前面的话 上一篇博客介绍了canvas基础用法,本文将更进一步,介绍canvas的图形处理和进阶用法 图形变换 图形变换是指用数学方法调整所绘形状的物理属性,其实质是坐标变形.所有的变换都依赖于后台的 ... 
- Android API 指南
		原文链接:http://android.eoe.cn/topic/android_sdk Android API 指南 - Android API Guides 应用的组成部分 - Applicati ... 
随机推荐
- ACM题目————Aggressive cows
			Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stal ... 
- java.lang.IllegalStateException异常简单分析和简单解决
			我们在做文件上传或者下载,或者过滤等操作时,可能要用到页面的输出流. 例如在JSP使用: response.reset(); response.setContentType(”application/ ... 
- Android处理图片OOM的若干方法小结 (推荐)
			众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定).因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片.音频文 ... 
- Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系
			1.Surface Surface extends Objectimplements Parcelable java.lang.Object ↳ android.view.Surface Cla ... 
- 加载页面(Loading)
			/* 文件说明:页面加载时Loading JS 文件描述:解决IE或FF下,初始化加载时,页面布局乱掉的问题,参考:*/var width = $(window).width();var height ... 
- JS脚本语言里的循环
			js脚本语言: 循环:(循环操作某一个功能(执行某段代码)) 四要素: 循环初始值 循环条件 状态改变 循环体 for(穷举 迭代) while 举例:(穷举) 与7相关的数 <scr ... 
- 没有必要去指定SqlSessionFactory或SqlSessionTemplate
			<!-- 自动注册mybatis mapper bean --><!-- 注意,没有必要去指定SqlSessionFactory或SqlSessionTemplate, 因为 ... 
- iq 格式分析
			po iq {type:1 name:iq xml:"<iq xmlns="jabber:client" to="testhjy@ecouser.net/ ... 
- .Net连接数据库(AOD.Net)
			用C#实现用户名登录---连接数据库,查询并判断是否存在用户名 一.链接类 1.添加DBConnection类 2构造 public class DBConnection { private stat ... 
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
			题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: i ... 
