android上的java的类维度
android的类java.awt.Dimension
的等效forms是什么?
您可以选择以下选项之一:
-
android.util.Size
(自API 21起)。 它有getWidth()
和getHeight()
但它是不可变的,这意味着一旦创建它就无法修改它。 -
android.graphics.Rect
。 它有getWidth()
和getHeight()
但是它们基于内部的left
,top
,right
,bottom
并且可能看起来很臃肿,带有所有额外的变量和实用程序方法。 -
android.graphics.Point
这是一个普通的容器,但名称不对,它的主要成员称为x
和y
,不适合resize。 但是 ,这似乎是从Android框架本身获取显示宽度和高度时使用/滥用的类,如下所示:Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y;
你可以使用Pair
这是Android的通用元组类。 (你需要用first
和second
替换getWidth()
和getHeight()
。)在Android API的其他地方,Android团队似乎为此目的使用ad-hoc类,例如Camera.Size
。
为什么你需要滥用其他类而不是实现一些非常简单的东西:
public class Dimensions { public int width; public int height; public Dimensions() {} public Dimensions(int w, int h) { width = w; height = h; } public Dimensions(Dimensions p) { this.width = p.width; this.height = p.height; } public final void set(int w, int h) { width = w; height = h; } public final void set(Dimensions d) { this.width = d.width; this.height = d.height; } public final boolean equals(int w, int h) { return this.width == w && this.height == h; } public final boolean equals(Object o) { return o instanceof Dimensions && (o == this || equals(((Dimensions)o).width, ((Dimensions)o).height)); } }