android上java的类维度
android的类android上java的类维度,java,android,dimensions,Java,Android,Dimensions,android的类java.awt.Dimension的等效形式是什么?您可以使用android的通用元组类。(不过,您需要将getWidth()和getHeight()替换为first和second。)在Android API的其他地方,Android团队似乎为此使用了特殊类,例如。为什么您需要滥用其他类,而不是实现非常简单的东西,如: public class Dimensions { public int width; public int height; pu
java.awt.Dimension
的等效形式是什么?您可以使用android的通用元组类。(不过,您需要将getWidth()
和getHeight()
替换为first
和second
。)在Android API的其他地方,Android团队似乎为此使用了特殊类,例如。为什么您需要滥用其他类,而不是实现非常简单的东西,如:
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));
}
}
您可以选择以下选项之一:
android.util.Size
(从API 21开始)。它有getWidth()
和getHeight()
但它是不可变的,这意味着一旦创建了它,就不能修改它android.graphics.Rect
。它有getWidth()
和getHeight()
,但它们是基于内部左,上,右,下的,并且可能因为所有额外的变量和实用方法而显得臃肿不堪
android.graphics.Point
是一个普通的容器,但名称不正确,它的主要成员被称为x
和y
,这对于调整大小并不理想然而,从Android框架本身获取显示宽度和高度时,这似乎是要使用/滥用的类,如下所示:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
您的意思是java swing维度类等效吗?单线问题可能无法得到有用的答案。请提供尽可能多的信息。是的!!java swing维度类equivalentPair将有2个额外的“新”整数装箱,最终需要进行垃圾收集。例如,如果您在布局代码中使用尺寸标注,并且有很多视图,这对gc()来说是不必要的额外负担。相反,您可以使用原子类型实现维度保持器,并让视图数据成员在视图的生命周期内保持它,并在布局算法中使用它,而不进行装箱/拆箱和垃圾收集。与基本Android视图使用临时Rect[F]存储避免分配的方式相同。另外一个好处是JIT可以内联最终的方法——更快的代码,因为大多数程序员往往忘记实现
hashCode()
和Parcelable
,当他们本可以使用优秀的Android API提供的Point
并着手处理更紧迫的事情时,就浪费了宝贵的时间