XML代码在“设备”和“图像”上显示不同

时间:2017-08-22 17:32:04

标签: android xml layout

这个XML代码让我很困惑:

    <?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="false"
        android:layout_alignParentTop="false"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="0dp"
        android:layout_marginRight="0dp"
        android:elevation="10dp" />

    <ImageView
        android:id="@+id/daimajia_slider_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="false"
        android:layout_centerVertical="true"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_toEndOf="@+id/space3"
        android:layout_toStartOf="@+id/space2"
        android:elevation="20dp" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:text="Button" />



    <ImageButton
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/daimajia_slider_image"
        android:layout_alignEnd="@+id/daimajia_slider_image"
        android:elevation="25dp"
        app:srcCompat="@mipmap/ic_launcher" />

</RelativeLayout>

此xml代码应显示&#34; daimajia_slider_image&#34; (它是来自github project的图像滑块,但我认为这不会对我的问题产生影响)和#34; imageView4&#34;

中的白框

它在权力的游戏中运作良好&#34;所有设备上的图片,但完全不在那些女孩的照片中。自拍,在我的索尼xperia xz和三星Galaxy S6上。 在没有可见白框的屏幕截图中,框架在图像后面的尺寸完全相同。看看不同的图片: enter image description here

修改

这是该布局的java代码:

                Glide.with(v).load(getUrl()).into(ImageView4);
                Glide.with(v).load(getUrl()).into(daimajia_slider_image);

//here i do the white framing
                ImageView4.setColorFilter(Color.WHITE);

2 个答案:

答案 0 :(得分:1)

使用ConstrainLayout,您可以按照此

进行此布局
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.constraint.ConstraintLayout
        android:id="@+id/content_layout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:elevation="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:elevation="10dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

        <ImageView
            android:id="@+id/daimajia_slider_image"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:elevation="20dp"
            android:scaleType="centerCrop"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

        <ImageButton
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:elevation="25dp"
            app:layout_constraintBottom_toBottomOf="@+id/daimajia_slider_image"
            app:layout_constraintRight_toRightOf="@+id/daimajia_slider_image"
            app:srcCompat="@mipmap/ic_launcher"/>

    </android.support.constraint.ConstraintLayout>

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>

</android.support.constraint.ConstraintLayout>

答案 1 :(得分:0)

这似乎解决了这个问题。感谢@smora带来了多个Relavivelayouts的想法。像这样,一次解决了2个问题,我甚至可以在RelativeLayouts上投下阴影,这是我在另一个问题上的问题。

 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="500dp"
    android:paddingTop="0dp">

    <RelativeLayout
        android:id="@+id/outerRL"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:background="@drawable/shadow1"
        android:elevation="10dp">

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="false"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:adjustViewBounds="true"
            android:elevation="10dp" />

        <RelativeLayout
            android:id="@+id/innerRL"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:background="@drawable/shadow1"
            android:elevation="15dp">

            <ImageView
                android:id="@+id/daimajia_slider_image"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="false"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:adjustViewBounds="true"
                android:elevation="15dp" />
        </RelativeLayout>
    </RelativeLayout>


    <ImageButton
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="25dp"
        android:backgroundTint="@color/colorPrimary"
        android:scaleType="centerInside"
        android:src="@drawable/ic_add_snap"
        android:text="Button"
        android:tint="@android:color/white" />


    <RelativeLayout
        android:id="@+id/heart_shadow"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_alignBottom="@+id/button3"
        android:layout_alignEnd="@+id/button3"
        android:alpha="0.9"
        android:background="@drawable/shadow1"
        android:elevation="29dp">

    </RelativeLayout>

    <ImageButton
        android:id="@+id/button3"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_alignBottom="@+id/outerRL"
        android:layout_alignEnd="@+id/outerRL"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="false"
        android:layout_centerVertical="true"

        android:backgroundTint="@color/colorHeartRed"
        android:elevation="30dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_core_heart"
        android:tint="#ffffff" />

</RelativeLayout>