android上的java的类维度

android的类java.awt.Dimension的等效forms是什么?

您可以选择以下选项之一:

  1. android.util.Size (自API 21起)。 它有getWidth()getHeight()但它是不可变的,这意味着一旦创建它就无法修改它。

  2. android.graphics.Rect 。 它有getWidth()getHeight()但是它们基于内部的lefttoprightbottom并且可能看起来很臃肿,带有所有额外的变量和实用程序方法。

  3. android.graphics.Point这是一个普通的容器,但名称不对,它的主要成员称为xy ,不适合resize。 但是 ,这似乎是从Android框架本身获取显示宽度和高度时使用/滥用的类,如下所示:

     Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; 

你可以使用Pair这是Android的通用元组类。 (你需要用firstsecond替换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)); } }