我需要知道ImageView的宽度和高度。有没有一种方法可以对它进行分段测量?在标准 Activity 中,我使用以下代码:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
image.getWidth();
image.getHeight();
}
但是,在哪里可以在片段中使用
image.getWidth();
和image.getHeight();
? 最佳答案
使用GlobalLayoutListener。就像在链接中的答案中一样,将监听器分配给ImageView
中的onCreateView()
。对于主要 Activity ,它也比onWindowFocusChanged()
更可靠,因此我建议您切换策略。
编辑
例子:
final View testView = findViewById(R.id.view_id);
ViewTreeObserver vto = testView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Log.d("TEST", "Height = " + testView.getHeight() + " Width = " + testView.getWidth());
ViewTreeObserver obs = testView.getViewTreeObserver();
obs.removeGlobalOnLayoutListener(this);
}
});
关于android - fragment View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12352920/