zoukankan      html  css  js  c++  java
  • android绘图

    做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,用它的Canvas。不同的时,Android里没有Graphics,而用Paint代之,当然用法也稍有不同。以下是自定义View的一段代码:

    @Override

    public void onDraw(Canvas canvas) {

    // 首先定义一个paint

    Paint paint = new Paint();

    // 绘制矩形区域-实心矩形

    // 设置颜色

    paint.setColor(Color.WHITE);

    // 设置样式-填充

    paint.setStyle(Style.FILL);

    // 绘制一个矩形

    canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);

    // 绘空心矩形

    // 设置颜色

    paint.setColor(Color.RED);

    // 设置样式-空心矩形

    paint.setStyle(Style.STROKE);

    // 绘制一个矩形

    canvas.drawRect(new Rect(10, 10, 50, 20), paint);

    // 绘文字

    // 设置颜色

    paint.setColor(Color.GREEN);

    // 绘文字

    canvas.drawText(str, 30, 30, paint);

    // 绘图

    // 从资源文件中生成位图

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

    // 绘图

    canvas.drawBitmap(bitmap, 10, 10, paint);

    }

    以上需要注意的有三点:

    1、Android中的Rect和java中的可能稍有区别,前两个参数是左上角的坐标,后两个参数是右下角的坐标(不是宽度和高度);

    2、Style.STROKE和Style.FILL外边的像素数是有区别的,这点和java里一样;

    3、绘文字时,设置的坐标点为(30,30),但绘出来后你会发现,文字的左上角坐标要比你设置的偏上,不知道是android设置的bug,还是我们有理解到坐标点的意义。

  • 相关阅读:
    Activiti系列——如何在eclipse中安装 Activiti Designer插件
    C语言 二维数组与指针笔记
    Ubuntu linux设置从当前目录下加载动态库so文件
    Ubuntu14.04安装nfs服务器
    Ubuntu14.04 搭建FTP服务器
    Linux备忘命令
    Java实现对xml文件的增删改查
    Java利用jacob实现打印Excel文件
    git操作列表
    swiper 窗口宽度变化,页面宽度高度变化 导致自动滑动 解决方案
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168374.html
Copyright © 2011-2022 走看看