首页 > 解决方案 > android 4.4.4(kitkat) ImageView Z-index

问题描述

我试图让我的第二个 ImageView 显示在其他两个之上,我使用了 ScaleXandScaleY方法,但不幸的是,在 android 4.4.4 上既不存在也不存在SetZ.....setElavation

使用bringToFront()效果不佳..它将图片放在最左侧

在此处输入图像描述

这是我的代码:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#aaaaaa"
    android:gravity="center_vertical"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="horizontal"
        >
        <ImageView
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"

            android:src="@drawable/wallpaper14"/>
        <ImageView
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:id="@+id/bigImage"
            android:src="@drawable/wallpaper16"/>
        <ImageView
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"

            android:src="@drawable/wallpaper17"/>
    </LinearLayout>



</LinearLayout>

有没有其他方法可以将第二个图像显示在其他图像之上?

标签: javaandroidz-index

解决方案


在不支持提升的 Android 版本上,视图的排序或分层由XML 文件中最后定义的视图控制。因此,您可以使用 aConstraintLayout来托管您的图像(而不是LinearLayout),并确保您的“第二个”图像是 ConstraintLayout 的最后一个子级:

<androidx.constraintlayout.widget.ConstraintLayout ...>

    <ImageView android:id="@+id/first" .../>
    <ImageView android:id="@+id/third" .../>
    <ImageView android:id="@+id/second" .../> // this one draws last, "on top"

</androidx.constraintlayout.widget.ConstraintLayout>

推荐阅读