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,还是我们有理解到坐标点的意义。

  • 相关阅读:
    VC++技术内幕(三)
    DataTable的Select方法
    <转载>电话号码正则表达式
    <转载>运行命令(CMD)大全
    各种CSS bug与技巧
    网页设计标准尺寸
    CSS实用技巧及常见问题
    超级实用且不花哨的js代码
    广告JS代码效果大全
    js小技巧收集
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168374.html
Copyright © 2011-2022 走看看