2016-12-01 155 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嘗試一下你自己,如果你發現它很難或如果有任何問題在下面留言,所以我可以幫助你 –