在android中设置相对布局的高度和宽度

时间:2012-08-29 14:17:31

标签: java android

这是我的情景。

我有一张按照320 * 480分辨率制作的图像(假设我使用的是mdpi mobile)。我将此图像添加为相对布局的背景。

现在我的屏幕有三个主要内容。

1- Title bar (The standard title bar of android)
2- My relative layout and its sub view image relative layout which is matched parent.
3- My menu bar at the bottom.

现在,因为我的图像在菜单栏和标题栏之间被拉伸了。我想让它适合屏幕。以下是我正在使用的代码。

    mainLayout.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

            public void onGlobalLayout() 
        {
           if (notCreated == true)
           {
               notCreated = false;
           }
           else
           {
               mnHeight = mainLayout.getHeight();
               Rect rect = getRawCoordinatesRect(mainLayout);
               h = getWindowManager().getDefaultDisplay().getHeight() -  
                       - rect.top - mainLayout.getHeight();
// rect.top to remove android standard title bar

               RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(image.getWidth(),LayoutParams.MATCH_PARENT);
               params.topMargin = -1 * rect.top;
               params.bottomMargin = -1 * h;
               image.setLayoutParams(params);

       }
    }


});

现在这不起作用。一点帮助将不胜感激。

注意:实际上我只想将图像相对布局拉伸到320 * 480。现在它在标题栏和我的菜单栏之间被切换。例如,现在它的尺寸是320 * 400

2 个答案:

答案 0 :(得分:0)

不确定它是否会有所帮助,但尝试使用setScaleType()尝试不同的选项。

image.setScaleType(ScaleType.FIT_CENTER);

Here are listed all the constans the ScaleType class has.

答案 1 :(得分:0)

我必须诚实地说,我不完全确定你想在这里做什么。但我会假设你想让图像功能作为背景.. 如果这就是你想要的,你只需在布局文件的主布局上设置android:background =“@ drawable / your_image”属性就可以做到这一点。

如果你想要的是删除标题栏,可以通过在活动类的onCreate方法中添加这一行来实现这一点:

//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

如果您要执行的操作是删除通知栏,则还可以在活动类的onCreate方法中执行此操作:

//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

我希望这可以帮助你:-)如果它不是你想要的,那就不要犹豫,试着重新制定你想要的东西。