这是我的情景。
我有一张按照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
答案 0 :(得分:0)
不确定它是否会有所帮助,但尝试使用setScaleType()
尝试不同的选项。
image.setScaleType(ScaleType.FIT_CENTER);
答案 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);
我希望这可以帮助你:-)如果它不是你想要的,那就不要犹豫,试着重新制定你想要的东西。