2016-12-01 156 views
1

我正在使用AbsoluteLayout尝试覆盖整个屏幕,并添加要添加的元素以创建“FullScreen”菜单,但不包含它。这是我得到的。让我分享我的代码,因为你看到粉红色面板不包括屏幕的角落为什么? enter image description here布局元素覆盖角

MainActivity XML

<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.apos.champquess.MainActivity"> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Button" 
    android:id="@+id/button" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="77dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" /> 

<ImageView 
    android:layout_width="404dp" 
    android:layout_height="550dp" 
    android:id="@+id/imageView" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentBottom="true" 
    android:layout_alignRight="@+id/button" 
    android:layout_alignEnd="@+id/button" 
    android:src="@color/colorAccent" 
    android:layout_below="@+id/button" 
    android:layout_x="280dp" 
    android:layout_y="78dp" /> 

<RadioButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New RadioButton" 
    android:id="@+id/radioButton" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginLeft="231dp" 
    android:layout_marginStart="231dp" 
    android:layout_x="150dp" 
    android:layout_y="73dp" /> 

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New CheckBox" 
    android:id="@+id/checkBox" 
    android:layout_x="710dp" 
    android:layout_y="238dp" /> 

而且MainActity的Java

package com.example.apos.champquess; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Window; 
import android.view.WindowManager; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //Remove title bar 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     //Remove notification bar 
     this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     //set content view AFTER ABOVE sequence (to avoid crash) 
     this.setContentView(R.layout.activity_main); 
     setContentView(R.layout.activity_main); 
    } 
} 

编辑:这就是我想要的样子(例如)

enter image description here

+0

“Pi nk面板不覆盖屏幕的角落“你能解释一下你实际需要做什么吗?也许带有示意图 –

+0

嘿@CharukaSilva我在帖子底部添加了期望效果的屏幕截图 – Demeteor

回答

1

快速回答这里;

您使用AbsoluteLayout 这个类是在API层面弃用 3. 使用FrameLayoutRelativeLayout或自定义布局来代替。

只拿RelativeLayout作为一个例子

ImageView是在它里面,你已经给定的宽度和高度为它possition它相对

android:layout_width="404dp" 
android:layout_height="550dp" 

所以它需要的是规模dimentions是这样的原因,远离边界 +您的根标签中有填充物AbsoluteLayout 如果您想手动给出尺寸给出一个小的宽度,如75 dp

有几个方法,你任务

,但先不要试图给大小手动那么它会显示不同的在不同的屏幕尺寸,但对于一个屏幕,你可以给这些值。 否则您需要使用基于比率的值。了解layout_weight和`

What does android:layout_weight mean?

`以及如何使用它,一个简单的例子 - >Android Layout - layoutweight and weightsum 或务实的态度,你可以给大小根据比例

// get screen sises 
    Display display = this.getWindowManager().getDefaultDisplay(); 
      Point size = new Point(); 
      display.getSize(size); 
      int screenY = size.y; 
      int screenX = size.x; 

RelativeLayout.LayoutParams yourView= new RelativeLayout.LayoutParams(screenX, 270 * screenY/1920); 
     yourView.topMargin = 0; 
     yourView.leftMargin = 125 * screenX/1080; 
     imgPoints.setLayoutParams(yourView); 

和了解RelativeLayoutLinearLayout行为以及

+0

所以这个工作方式像css?我是否应该使用具有相同逻辑的布局? – Demeteor

+0

等待虐待更新答案, –

+0

@ Demeteor尝试一下你自己,如果你发现它很难或如果有任何问题在下面留言,所以我可以帮助你 –