我嘗試possition我的按鈕在中心不完全是,但讓在屏幕高度的2/5秒說,我一直在尋找的屬性失敗,所以我嘗試這種方法有沒有辦法在Android中從中心偏移視圖?
<RelativeLayout 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:background="@drawable/background"
android:padding="20dp" >
<ImageButton
android:id="@+id/flashlight_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_above="@+id/fakeView"
android:background="@null"
android:contentDescription="@string/flashlight_button_description"
android:src="@drawable/freeml_bright" />
<View
android:id="@+id/fakeView"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_centerInParent="true"
android:background="#FFAABB" />
</RelativeLayout>
但它不工作,即使我在假視圖上設置了保證金。
任何想法?
// //編輯
感謝你的回答傢伙,填充屬性的作品,但因爲它是一個大的圖像,如果我希望它在屏幕高度的2/5度開始,它涵蓋了中心點屏幕,所以如果我使用填充屬性它的作品,但它推離中心,並不允許它覆蓋它。對不起我的壞
雖然,我讓它使用線性佈局,我想避免,因爲有更多的觀點上下彼此相鄰,所以它會導致嵌套視圖使用線性佈局。不幸的是我認爲它是唯一的選擇。
它基本上它使用通過用高度= 0dp和權重= 1的頂部和底部視圖填充閒置的剩餘空間,並設置其重力居中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/application_logo_description"
android:src="@drawable/mylight" />
<ImageButton
android:id="@+id/settings_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:background="@null"
android:contentDescription="@string/settings_button_description"
android:src="@drawable/settings_button" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical" >
<ImageButton
android:id="@+id/flashlight_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription="@string/flashlight_button_description"
android:src="@drawable/flashlight_button_selector" />
<View
android:id="@+id/fakeView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="60dp"
android:background="#FFAABB" />
</LinearLayout>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:contentDescription="@string/powered_by_description"
android:src="@drawable/powered_by" />
<ImageButton
android:id="@+id/ad_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="@null"
android:contentDescription="@string/ad_button_description"
android:src="@drawable/freeml" />
</LinearLayout>
感謝您的輸入另一個線性佈局。
嗨,它的工作原理,但像我可能會誤導你,東陽它的一個相當大的圖像中的ImageButton的,所以如果我想讓它從屏幕高度的2/5開始,因此它覆蓋了屏幕的中心點。如果我使用你的建議答案,它會將按鈕從中心推開,並且不允許它覆蓋它。 – urSus 2012-07-27 15:10:40
嗯,也許嘗試用paddingBottom替換paddingTop? – 2012-07-27 15:11:53
哦,我實際上讀錯了,在居中的假視圖上設置填充不起作用。設置上面的按鈕上的填充只是向上推按鈕,這不是我的解決方案,因爲我想覆蓋中點 – urSus 2012-07-27 15:33:20