如何根据屏幕大小调整Android上视图对象的大小

如何根据屏幕大小调整Android上视图对象的大小,android,Android,我不知道该怎么做。有人能给我解释一下如何使用ImageView或一个简单的按钮来实现这一点吗?您可以使用布局参数来实现这一点。您可以这样使用它,通过编程方式传递宽度和高度(分别为100100) 我在onCreate中执行类似操作以获得正确的宽度和高度: final ViewTreeObserver vto = view.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener()

我不知道该怎么做。有人能给我解释一下如何使用ImageView或一个简单的按钮来实现这一点吗?

您可以使用布局参数来实现这一点。您可以这样使用它,通过编程方式传递宽度高度(分别为100100)


我在onCreate中执行类似操作以获得正确的宽度和高度:

    final ViewTreeObserver vto = view.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {

            if (Build.VERSION.SDK_INT < 16) {
                view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            } else {
                view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            }

            width = view.getWidth();
            height = view.getHeight();

            // using the method Alécio mention
            setupOtherViewsThatDependOnWidthAndHeight();

        }
    });
final ViewTreeObserver vto=view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(新的OnGlobalLayoutListener(){
@凌驾
公共图书馆{
如果(Build.VERSION.SDK_INT<16){
view.getViewTreeObserver();
}否则{
view.getViewTreeObserver();
}
width=view.getWidth();
height=view.getHeight();
//使用阿尔西奥提到的方法
setupotherview依赖于endowidthandheight();
}
});

这里的情况是,在屏幕渲染完成之前,大小和高度不会返回正确的值。

是的,您可以使用百分比检查来执行此无问题编码
    final ViewTreeObserver vto = view.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {

            if (Build.VERSION.SDK_INT < 16) {
                view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            } else {
                view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            }

            width = view.getWidth();
            height = view.getHeight();

            // using the method Alécio mention
            setupOtherViewsThatDependOnWidthAndHeight();

        }
    });