我正在创建一个具有扩展线性布局的类(圆形按钮)的模块。它包含图像视图和文本视图。
在XML文件中声明循环视图时,将分配layout_width和layout_height值。我希望imageview尺寸与指定的布局尺寸成比例。因此,如何将布局尺寸传递给视图类,以便我可以将比例尺寸分配给图像视图?
P.S。:这个问题不涉及传递自定义属性。但要处理将android:layout_width
和android:layout_height
传递给自定义UI类的问题。
答案 0 :(得分:0)
我通过将视图实例传递给需要值的方法来解决这个问题。然后使用getViewTreeObserver().OnGlobalLayoutListener()
。
public void setIcon(final RoundedButton rb, final int drawableResourceId, final int position){
mIconPosition = position;
rb.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
buttonWidth = rb.getWidth();
buttonHeight = rb.getHeight();
//whatever needs to be done with the dimensions
}
});
}
即使班级扩展了一种视图,你也不能this.getViewTreeObserver().addOnGlobalLayoutListener()
。