Android自定义View之基本API(一)

这篇博客介绍了Android自定义View中常用的绘图API,包括Point和PointF类,用于表示点的坐标;Rect和RectF类,用于描述矩形结构及其相关操作;以及Bitmap类,用于处理图像数据。文章详细讲解了这些类的基本使用和特性,为自定义控件的绘制打下基础。
摘要由CSDN通过智能技术生成

在上一篇博客中,我们基本了解了Android中View的绘制流程,知道了绘制流程以后,是不是想要马上写一些自定义控件来玩一下呢?不急,在这一篇博客中,我们先来了解一下Android给我们提供的一些常见的绘图的API。绘图的API是什么呢,我就用一个比喻吧。当Android工程师在自定义view是就相当于一个画家,那么画家作画是不是需要了工具了,如画板、画布、画笔以及颜料等,而Android系统也给我们提供了很多这样的工具,就是Android中的一些绘图相关的API。这篇文章主要介绍Point/PointF、Rect/RectF、Bitmap/BitmapDrawable几个类;在下一篇文章中将主要介绍Paint类和Canvas类。

1.Point类和PointF类(讨论的是android.graphics包下面的,不是java.awt包下面的)

Point类是一个简单的类,代表一个"点",实现了Parcelable序列化接口,支付序列化和反序列化。Point类中定义了两个成员变量x和y,表示一个点的横坐标和纵坐标。在Android中的坐标与数学中的平面坐标有所不同,Android中x轴向右为正,向左为负;y轴向下为正,向上为负,坐标原点在屏幕的左上角,也就是说屏幕内的所有点不管是x坐标还是y坐标都是正数。


Point类作为最简单的类,提供的功能也很简单

① 通过Point类创建一个点的方法

// 创建一个新的点
public Point() {}
// 根据x,y坐标创建一个新的点
public Point(int x, int y) {
	this.x = x;
	this.y = y;
}
// 通过一个点创建一个新的点,就是将一个点的坐标赋值给另一个点
public Point(Point src) {
	this.x = src.x;
	this.y = src.y;
}
② 对Point点进行操作的方法

// 对点进行重新设置x和y
public void set(int x, int y) {
	this.x = x;
	this.y = y;
}
// 将x和y取反值
public final void negate() {
	x = -x;
	y = -y;
}
// 对x和y的值做改变,dx、dy表示偏移量,正负号决定偏移的方向
public final void offset(int dx, int dy) {
	x += dx;
	y += dy;
}
③ 判断方法

// 通过x和y坐标判断是否为同一点
public final boolean equals(int x, int y) {
	return this.x == x && this.y == y;
}
// 判断一个对象是否和当前点是否是同一个点或者重合
@Override
public boolean equals(Object o) {
	if (this == o) return true;
	if (o == null || getClass() != o.getClass()) return false;

	Point point = (Point) o;

	if (x != point.x) return false;
	if (y != point.y) return false;

	return true;
}
PointF类和Point类功能和用法完全一样,唯一不同的就是Point类的成员变量x、y是int类型的;PointF类的成员变量x、y是float类型的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值