我上课了
public class FancyView extends View implements View.OnTouchListener {
Run Code Online (Sandbox Code Playgroud)
我需要获得视图的高度/宽度.
(它可能会随着设备旋转而改变.当然,在初始化时也不知道高度/宽度.)
你可以这样做...
所以,实际上在类中FancyView只是覆盖onLayout(changed)
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
int hh = getHeight();
Log.d("~", "Using onLayout(changed), height is known: " +hh);
}
Run Code Online (Sandbox Code Playgroud)
或者,你可以这样做......
再次在课堂内FancyView使用addOnLayoutChangeListener
private void init() {
addOnLayoutChangeListener(new OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top,
int right, int bottom, int oldLeft, int oldTop,
int oldRight, int …Run Code Online (Sandbox Code Playgroud)