Android 二维布局,Android绘制二维图形的方法

本文介绍了在Android中绘制二维图形的两种方法,包括将图像放入ImageView和直接在Canvas上绘制。对于需要动态控制的图像,Canvas提供了更多灵活性。Drawable作为可绘图对象的抽象,包括BitmapDrawable、ShapeDrawable等子类,可以通过资源、XML或构造函数创建。在代码示例中展示了如何在自定义View中加载图片并绘制到Canvas上。
摘要由CSDN通过智能技术生成

通常有下列两种方法来绘制二维图形:

1.绘制图像或动画到图像视图(ImageView)上

图像或动画是由系统的显示绘图处理器来操作,简单来说只是将图像放进图像视图中。当您所描绘的是静态图或是已经规划好的连续动作的动画时,可采用这个方法。

2.图形直接绘制到画布(Canvas)上

调用draw()方法(传给画布)或调用Canvas中draw开头的方法中的一个(比如drawPicture())。这样做可以控制动画。当应用程序需要定期重复绘制图像时,比如游戏软件,可以采用此方式,绘图到画布上。

图像显示对象——Drawable

如果只是绘制简单的图形,可以绘图到图像视图的背景,或放置到ImageView的内容上。一般来说,Drawable类是“任何可以绘图东西”的抽象对象。Drawable类被继承且定义出许多不同的、具体的Drawable图形,包括BitmapDrawable、ShapeDrawable、PictureDrawable、LayerDrawable等,您可以继承这些类来定义具有自己独特功能的Drawable对象。

有3种方法可以定义和实现一个Drawable对象:

1.使用图像存储在项目的资源

2.使用XML文件来定义Drawable属性

3.使用一般构造函数

从项目资源来创建图像

使用从图像资源来获取图像文件之前,需要将图像文件添加到项目的“/res/drawable”目录内,可以从Java程序代码或XML窗体布局文件引用到这个图像。使用它的资源ID来引用,资源ID名称是没有扩展名的文件名称,比如myImage.png存储在“/res/drawable”目录内就可以使用R.drawable.myImage资源ID来获取这个图像。

1.

import android.content.Context;

import

android.content.res.Resources;

import

android.graphics.Bitmap;

import

android.graphics.BitmapFactory;

import

android.graphics.Canvas;

import

android.graphics.Paint;

import

android.view.View;

public class GameView extends View

{

//要显示的图像

Bitmap bmp;

//构造方法

public

GameView(Context context) {

super(context);

//得到项目资源

Resources res=context.getResources();

//从项目资源得到图像

bmp=BitmapFactory.decodeResource(res, R.drawable.myImage);

}

//绘制图像的方法

protected

void onDraw(Canvas canvas) {

super.onDraw(canvas);

//在画布上画图

canvas.drawBitmap(bmp, 0,50,new Paint());

}

}

2.

import android.app.Activity;

import

android.os.Bundle;

public class Main

extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(new GameView(this));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值