嗨,我有一个应用程序,是一个图像库。
问题是,我有按钮在应用程序中心的图像之间移动,我希望它们在顶部边缘的75%处。
问题是:我可以将它放在屏幕的%而不是dp上吗?
错误是如果我使用margin_bottom
它会崩溃。
这是我的代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/color_fondo"
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=".MainActivity" >
<ImageView
android:id="@+id/barra"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:scaleType="fitXY"a
android:src="@drawable/cabecera" />
<ImageView
android:id="@+id/img1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/barra"
android:paddingTop="@dimen/activity_vertical_margin"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />
<ProgressBar
android:id="@+id/pb1"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/img1"
android:layout_centerHorizontal="true"
android:visibility="invisible" />
<ImageButton
android:id="@+id/imgbtnshare1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="@null"
android:paddingBottom="5dp"
android:src="@drawable/compartir4" />
<ImageButton
android:id="@+id/imgbtn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/imgbtnshare1"
android:layout_alignParentLeft="true"
android:layout_marginBottom="100dp"
android:background="@null"
android:src="@drawable/izquierda42" />
<ImageButton
android:id="@+id/imgbtn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/imgbtn2"
android:background="@null"
android:src="@drawable/derecha42" />
</RelativeLayout>
答案 0 :(得分:2)
您可能会获得Layout
尺寸,然后将按钮的上边距计算为比例:
注意:您无法在onCreate()
中获取布局大小,因为它尚未设置。在您onWindowFocusChanged
的{{1}}方法中执行此操作。
Activity
并以编程方式设置:
RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.YourXML);
@Override
public void onWindowFocusChanged (boolean hasFocus) {
// The layout has been drawn here
// so the Height and Width have been computed
int width = relativeLayout.getWidth();
int height = relativeLayout.getHeight();
}
int topMargin = height * 0.75;