如何在 Final Android App 中的 WebView 上添加 Imageview

Posted

技术标签:

【中文标题】如何在 Final Android App 中的 WebView 上添加 Imageview【英文标题】:How to add Imageview on WebView in Final Android App 【发布时间】:2021-10-31 22:13:48 【问题描述】:

当我要制作警报应用程序时,我使用的是我的网站而不是 XML 代码。但是为了去我的网络活动警报活动,我做了一个意图,它可以在我的小图像视图上点击。

下面是我的 XML 代码:

activity_web.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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".WebActivity">


    <WebView
        android:id="@+id/webview"
        android:layout_
        android:layout_

        android:layout_centerInParent="true">


    </WebView>

    <ImageView
        android:id="@+id/imageView"
        android:layout_
        android:layout_
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"

        tools:srcCompat="@drawable/bell_icon" />





</RelativeLayout>

但主要问题是当我在手机中安装应用程序时,imageview 不可见。

它在我的 android Studio 布局中也可见。

You Check My Android Studio Layout here

现在告诉我应该怎么做才能让它在最终构建的 apk 中可见,这将在我的手机上运行。

【问题讨论】:

您的 WebView android:height 参数是 match_parent,因此它占据了整个父级高度,您的图像不可见 @gtxtreme parent is RelativeLayout, WebView 不会在屏幕外推送任何内容 不,我不是说将布局推到外面,我是说这有点盖过了ImageView@snachmsm 【参考方案1】:

您可以通过使用约束布局来正确设置它,这是一个代码,也许它可以工作!

在此我在顶部设置了一个 ImageView,在 ImageView 底部设置了 webview。

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_
    android:layout_>

    <ImageView
        android:id="@+id/imageView"
        android:layout_
        android:layout_
        android:background="@color/white"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"/>

    <WebView
        android:layout_
        android:layout_
        app:layout_constraintTop_toBottomOf="@+id/imageView"
        app:layout_constraintBottom_toBottomOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

【讨论】:

图像卡在顶部 @YourEnglishLibrary 尝试将android:scaleType 设置为“center”、“centerCrop”或“centerInside”。【参考方案2】:

您使用了错误的属性命名空间,我很惊讶 AS 预览工具正在显示此图像,它不应该。但是您的ImageView 在设备上,它是可点击的(我们是这样设置的),它只有透明的内容(错误地解决了srcCompat attr,如下所示)。作为测试,您可以添加android:background="#789810" 标签,ImageView 将以可见背景显示(仍然没有图像)

在你的代码中

tools:srcCompat="@drawable/bell_icon"

tools 命名空间指向"some tools",就像使用过的tools:context=".WebActivity"。要设置特定 View 的自定义属性,您必须使用(自定义)资源命名空间,这些在您的 XML 中使用 xmlns:app="http://schemas.android.com/apk/res-auto" 行声明,因此您应该使用下面的行

app:srcCompat="@drawable/bell_icon"

顺便说一句。如果你使用srcCompat,你也应该使用AppCompatImageView。它只适用于通常的ImageView,因为默认情况下,AS 项目在将项目构建到 APK/bundle 期间将所有ImageViews 交换为AppCompatImageViews。此行为可能会被更改或禁用,然后您的ImageView 将保持没有任何图像集。设置图像的完全正确的行是ImageView的默认src属性,所以:

android:src="@drawable/bell_icon"

android 命名空间在这里,因为这个属性属于框架(“内置”),而不是一些额外的库和 ViewAppCompatImageView 来自 AppCompat 或 AndroidX 库)

【讨论】:

你能给我完整的代码意味着通过清除所有错误给我上面的完整代码。我无法解决它 我不明白你...我刚刚建议(有丰富的解释)用app:srcCompatandroid:src 替换tools:srcCompat,你试过吗?您的图像应该在没有任何其他更改的情况下可见,并且发布了有问题的代码 如果我没有在 java 文件中编写 webview 函数,那么它运行良好但我无法显示我的网页 很遗憾我又听不懂你了...您的图像可见性有问题,我已经为您提供了解释和解决方案,WebView 本身不涉及此主题.. . 是的,你给了我解决方案,但它不起作用

以上是关于如何在 Final Android App 中的 WebView 上添加 Imageview的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏android app中的标题栏

如何隐藏android app中的标题栏

如何解决Android中的“任务':app:processDebugResources'执行失败”?

如何快速定位Android APP中的关键函数?

Android中的颜色

如何在android APP中设置系统语言