登录
首页 » Android » 旋转和缩放图像

旋转和缩放图像

于 2022-01-22 发布 文件大小:1.20 MB
0 168
下载积分: 2 下载次数: 1

代码说明:

您可以旋转和放大和缩小图像,在安卓系统的多点触控。如果你想要两个,这将是对你有益。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 读书类的APP,简单的DEMO
    简单的txt浏览器,感觉还算好用吧。喜欢的下载吧
    2015-01-21下载
    积分:1
  • EST527蓝牙版源代码
    本项目主要实现手机端蓝牙与EST527硬件的蓝牙通讯,可以获取车辆的实时信息(电瓶电压、车速、转速、水温、发动机负荷等),统计信息(平均油耗、瞬时油耗、里程信息等),驾驶习惯信息(点火次数、怠速时间、最高车速、最高转速、累计行驶时间等),故障诊断等功能。
    2022-05-30 20:58:06下载
    积分:1
  • Android 展开android通知栏(兼容4.2及以上)实例源码
    用到 android反射相关方法 实现展开通知栏示例
    2014-05-26下载
    积分:1
  • 01、Android项目开发实战:倒计时
    Android项目开发实战:倒计时,熟悉UI,JAVA、Android知识,1、倒计时的UI设计2、倒计时的逻辑实现.mp4
    2022-08-26 05:39:00下载
    积分:1
  • linux_development_guide_CN-JZ4770
    this is android guid
    2012-04-12 10:23:29下载
    积分:1
  • android canvas详解
    Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。今天我们主要要了解的是2D相关的,如果你想看3D的话那么可以跳过这篇文章。 大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、 BitmapDrawable和TransitionDrawable等。以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果。下面我们就主要来了解下Canvas的使用方法。 Canvas对象的获取方式有两种:一种我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们操作这个Canvas,效果会直接反应在View中。另一种就是当你想创建一个Canvas对象时使用的方法: 1 2 Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);   Canvas c =newCanvas(b); 上面代码创建了一个尺寸是100*100的Bitmap,使用它作为Canvas操作的对象,这时候的Canvas就是使用创建的方式。当你使用创建的Canvas在bitmap上执行绘制方法后,你还可以将绘制的结果提交给另外一个Canvas,这样就可以达到两个Canvas协作完成的效果,简化逻辑。但是android SDK建议使用View.onDraw参数里提供的Canvas就好,没必要自己创建一个新的Canvas对象。接下来我们看看Canvas提供我们哪些绘制图形的方法。我们创建一个自定义View对象,使用onDraw方法提供的Canvas进行绘制图形。 CanvasDemoActivity.java: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 package com.android777.demo.uicontroller.graphics;                                                                                                                                      import android.app.Activity;   import android.content.Context;   import android.graphics.Canvas;   import android.graphics.Color;   import android.graphics.Paint;   import android.os.Bundle;   import android.view.View;                                                                                                                                      public class CanvasDemoActivity extends Activity {                                                                                                                                          @Override       protected void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);                                                                                                                                              setContentView(newCustomView1(this));                                                                                                                                          }                                                                                                                                          /**        * 使用内部类 自定义一个简单的View        * @author Administrator        *        */     class CustomView1 extends View{                                                                                                                                              Paint paint;                                                                                                                                              public CustomView1(Context context) {               super(context);               paint =newPaint();//设置一个笔刷大小是3的黄色的画笔               paint.setColor(Color.YELLOW);               paint.setStrokeJoin(Paint.Join.ROUND);               paint.setStrokeCap(Paint.Cap.ROUND);               paint.setStrokeWidth(3);           }                                                                                                                                              //在这里我们将测试canvas提供的绘制图形方法           @Override           protected void onDraw(Canvas canvas) {                                                                                                                                              }                                                                                                                                          }                                                                                                                                      } 执行结果是一片黑色的区域,因为在自定义的CustomView1中,我们没有做任何的绘制操作。canvas提供的绘制图形的方法都是以draw开头的,我们可以查看api: 从上面方法的名字看来我们可以知道Canvas可以绘制的对象有:弧线(arcs)、填充颜色(argb和color)、 Bitmap、圆(circle和oval)、点(point)、线(line)、矩形(Rect)、图片(Picture)、圆角矩形 (RoundRect)、文本(text)、顶点(Vertices)、路径(path)。通过组合这些对象我们可以画出一些简单有趣的界面出来,但是光有这些功能还是不够的,如果我要画一个仪表盘(数字围绕显示在一个圆圈中)呢? 幸好Android还提供了一些对Canvas位置转换的方法:rorate、scale、translate、skew(扭曲)等,而且它允许你通过获得它的转换矩阵对象(getMatrix方法,不知道什么是转换矩阵?看这里) 直接操作它。这些操作就像是虽然你的笔还是原来的地方画,但是画纸旋转或者移动了,所以你画的东西的方位就产生变化。为了方便一些转换操作,Canvas 还提供了保存和回滚属性的方法(save和restore),比如你可以先保存目前画纸的位置(save),然后旋转90度,向下移动100像素后画一些图形,画完后调用restore方法返回到刚才保存的位置。下面我们就演示下canvas的一些简单用法: 1 2 3 4 protected void onDraw(Canvas canvas) {                                                                                                                                          canvas.drawCircle(100, 100, 90, paint);   } 效果是: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Override   protected void onDraw(Canvas canvas) {                                                                                                                                          //绘制弧线区域                                                                                                                                          RectF rect =newRectF(0, 0, 100, 100);                                                                                                                                          canvas.drawArc(rect,//弧线所使用的矩形区域大小               0, //开始角度               90,//扫过的角度               false,//是否使用中心               paint);                                                                                                                                      } 使用下面的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 protected void onDraw(Canvas canvas) {                                                                                                                                          //绘制弧线区域                                                                                                                                          RectF rect =newRectF(0, 0, 100, 100);                                                                                                                                          canvas.drawArc(rect,//弧线所使用的矩形区域大小               0, //开始角度               90,//扫过的角度               true,//是否使用中心               paint);                                                                                                                                      } 两图对比我们可以发现,当 drawArcs(rect,startAngel,sweepAngel,useCenter,paint)中的useCenter为false时,弧线区域是用弧线开始角度和结束角度直接连接起来的,当useCenter为true时,是弧线开始角度和结束角度都与中心点连接,形成一个扇形。 1 2 3 4 5 protected void onDraw(Canvas canvas) {                                                                                                                                          canvas.drawColor(Color.BLUE);                                                                                                                                      } canvas.drawColor是直接将View显示区域用某个颜色填充满。 1 2 3 4 5 6 7 @Override   protected void onDraw(Canvas canvas) {                                                                                                                                          //画一条线       canvas.drawLine(10, 10, 100, 100, paint);                                                                                                                                      } Canvas.drawOval: 1 2 3 4 5 6 7 8 9 @Override   protected void onDraw(Canvas canvas) {                                                                                                                                          //定义一个矩形区域       RectF oval =newRectF(0,0,200,300);       //矩形区域内切椭圆       canvas.drawOval(oval, paint);                                                                                                                                      } canvas.drawPosText: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Override   protected void onDraw(Canvas canvas) {                                                                                                                                          //按照既定点 绘制文本内容       canvas.drawPosText("Android777",newfloat[]{               10,10,//第一个字母在坐标10,10               20,20,//第二个字母在坐标20,20               30,30,//....               40,40,               50,50,               60,60,               70,70,               80,80,               90,90,               100,100       }, paint);                                                                                                                                      } canvas.drawRect: 1 2 3 4 5 6 7 8 9 10 @Override       protected void onDraw(Canvas canvas) {                                                                                                                                              RectF rect =newRectF(50, 50, 200, 200);                                                                                                                                              canvas.drawRect(rect, paint);                                                                                                                                          }                                                                                                                                      } canvas.drawRoundRect: 1 2 3 4 5 6 7 8 9 10 11 @Override   protected void onDraw(Canvas canvas) {                                                                                                                                          RectF rect =newRectF(50, 50, 200, 200);                                                                                                                                          canvas.drawRoundRect(rect,                           30,//x轴的半径                           30,//y轴的半径                           paint);                                                                                                                                      } canvas.drawPath: 1 2 3 4 5 6 7 8 9 10 11 12 @Override   protected void onDraw(Canvas canvas) {                                                                                                                                          Path path =newPath();//定义一条路径       path.moveTo(10, 10);//移动到 坐标10,10       path.lineTo(50, 60);       path.lineTo(200,80);       path.lineTo(10, 10);                                                                                                                                          canvas.drawPath(path, paint);                                                                                                                                      } canvas.drawTextOnPath: 1 2 3 4 5 6 7 8 9 10 11 12 13 @Override           protected void onDraw(Canvas canvas) {                                                                                                                                                  Path path =newPath();//定义一条路径               path.moveTo(10, 10);//移动到 坐标10,10               path.lineTo(50, 60);               path.lineTo(200,80);               path.lineTo(10, 10);                                                                                                                                      //          canvas.drawPath(path, paint);               canvas.drawTextOnPath("Android777开发者博客", path, 10, 10, paint);                                                                                                                                              } 位置转换方法,canvas.rorate和canvas.translate: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 @Override   protected void onDraw(Canvas canvas) {                                                                                                                                          paint.setAntiAlias(true);       paint.setStyle(Style.STROKE);       canvas.translate(canvas.getWidth()/2, 200);//将位置移动画纸的坐标点:150,150       canvas.drawCircle(0, 0, 100, paint);//画圆圈                                                                                                                                          //使用path绘制路径文字       canvas.save();       canvas.translate(-75, -75);       Path path =newPath();       path.addArc(newRectF(0,0,150,150), -180, 180);       Paint citePaint =newPaint(paint);       citePaint.setTextSize(14);       citePaint.setStrokeWidth(1);       canvas.drawTextOnPath("http://www.android777.com", path, 28, 0, citePaint);       canvas.restore();                                                                                                                                          Paint tmpPaint =newPaint(paint);//小刻度画笔对象       tmpPaint.setStrokeWidth(1);                                                                                                                                          float  y=100;       int count = 60;//总刻度数                                                                                                                                          for(int i=0 ; i
    2015-12-03下载
    积分:1
  • android点菜系统
    android 开发的点菜系统APP 适合学生毕业设计参考
    2022-01-31 10:19:25下载
    积分:1
  • android 侧滑效果 动画原理 代码
    android 侧滑效果 动画原理 代码
    2015-06-26下载
    积分:1
  • android
    android无线订餐源码 android无线订餐源码 android无线订餐源码 android无线订餐源码(android wireless ordering source)
    2014-11-06 14:49:17下载
    积分:1
  • android-undergarment-master安卓UI
    A slide-out navigation (a.k.a. "Drawer") implementation for Android applications. The slide-out navigation pattern has been popping up in all sorts of places in the Android ecosystem lately in all sorts of shapes and sizes. Undergarment initially started with me mimicking the experience found in the Prixing application, as documented by Cyril Mottier in his series of three blog  请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2022-01-25 19:10:03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载