java - android 4.4.4(kitkat) ImageView Z-index
问题描述
我试图让我的第二个 ImageView 显示在其他两个之上,我使用了 ScaleX
andScaleY
方法,但不幸的是,在 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>
有没有其他方法可以将第二个图像显示在其他图像之上?
解决方案
在不支持提升的 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>
推荐阅读
- c++ - nlohmann::json 使用 better_enum
- c# - WordprocessingDocument.CreateFromTemplate(path) 不更新模板文件
- javascript - node.js 第二个产生的子进程没有收到标准输入消息
- stripe-payments - 我已将我的 Stripe 付款实施为符合 SCA 标准,但无法判断付款是否利用了 SCA 功能
- javascript - 如何用逗号分隔的冒号分隔键和值对拆分字符串并将其传递给javascript对象?
- google-data-studio - 数据工作室 - 谷歌搜索控制台按月排名位置图表
- android - HMS Core APK 在 x86 上安装和运行
- javascript - WebGL2:无法设置统一浮动
- java - 使用 saveAll JPA 进行大量持久/合并的方法
- django - 将 django 路径 slug 限制为列表