Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android界面错误图像按钮_Android_Android Layout_Android Imageview - Fatal编程技术网

android界面错误图像按钮

android界面错误图像按钮,android,android-layout,android-imageview,Android,Android Layout,Android Imageview,嗨,我有一个应用程序,是一个图片库 问题是,我有按钮在应用程序中心的图像之间移动,我希望它们位于顶部边缘的75% 问题是:我可以把它放在屏幕的%而不是dp上吗? 错误是如果我使用margin\u bottom它会崩溃 这是我的密码 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:l

嗨,我有一个应用程序,是一个图片库

问题是,我有按钮在应用程序中心的图像之间移动,我希望它们位于顶部边缘的75%

问题是:我可以把它放在屏幕的%而不是dp上吗?

错误是如果我使用
margin\u 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>

您可以获得
布局
大小,然后计算按钮的顶部边距,作为其比例:

注意:您无法在
onCreate()
中获取布局大小,因为它尚未设置。在您的
活动的
onWindowFocusChanged
方法中执行此操作

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;
并以编程方式进行设置:

LayoutParams layoutParams = new LayoutParams(
                                  LayoutParams.WRAP_CONTENT,      
                                  LayoutParams.WRAP_CONTENT
                            );

layoutParams.setMargins(left, top, right, bottom);
yourbutton.setLayoutParams(layoutParams);