Android之基础复习2D图形一(1)

Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作。

Paint - 我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。

如果涉及一些Android游戏开发、显示特效可以通过这些底层图形类来高效实现自己的应用。

下面是画一些简单的图形:

package hb.android.graphics;

import android.app.Activity;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.graphics.Typeface;

import android.graphics.Path.Direction;

import android.os.Bundle;

import android.view.Display;

import android.view.Window;

import android.view.WindowManager;

import android.widget.ImageView;

public class HelloGraphicsActivity extends Activity {

ImageView img;

Canvas canvas;

Bitmap bitmap;

Paint paint;

int width;

int height;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 设置全屏,也可以在xml中进行设置 。

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.main);

img = (ImageView) findViewById(R.id.img);

// 得到屏幕的宽和高。

Display display = getWindowManager().getDefaultDisplay();

width = display.getWidth();

height = display.getHeight();

// 创建图片,用来绘制。

bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

// 创建画布,并且设置图片用来进行绘制。一个画布可以看成是整个屏幕。

canvas = new Canvas();

canvas.setBitmap(bitmap);

// 设置画笔,的各种属性。

//可以利用typeface设置外部字体

paint = new Paint();

paint.setAntiAlias(true);

paint.setColor(Color.RED);

paint.setStrokeWidth(10);

paint.setStyle(Paint.Style.FILL);

// 利用画布直接将内容绘制到bitmap上面。

canvas.drawCircle(50, 50, 30, paint);

//设定字体和各种格式

Typeface typeface = Typeface.create(“test”, Typeface.BOLD_ITALIC);

paint.setTypeface(typeface);

paint.setTextSize(25);

canvas.drawText(“我是被画出来的!”, 100, 50, paint);

//画线

paint.setColor(Color.GREEN);

canvas.drawLine(0, 0, width, height/2, paint);

//画一条路径;Path.moveTo

Path path = new Path();

paint.setColor(Color.BLUE);

//移动动位置

path.moveTo(150, 150);

//画线条

path.lineTo(150, 200);

path.lineTo(200, 210);

path.lineTo(30, 30);

canvas.drawPath(path, paint);

//从哪里开始画一个弧形

path.reset();

path.addCircle(230, 230, 10, Direction.CCW);

canvas.drawPath(path, paint);

// 将画好的图片显示到屏幕上面。

img.setImageBitmap(bitmap);

// 清空笔刷;

paint.reset();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值