2

我想要的是透明背景图像视图上的完全不透明文本。没有图像,webview 文本是不透明的,并且不在背景 imageview 上的文本仍然是不透明的。如我提供的屏幕截图所示,只有透明图像上的文本部分变得透明。我搜索过它非常有趣且尽管如此,但我找不到解决方案。

这是当前的屏幕截图:

在此处输入图像描述

这是我的 xml 布局

<ScrollView
android:id="@+id/SCROLLER_ID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:fillViewport="true">

<WebView
android:id="@+id/tvAnimalJoke"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"

 />

<ImageView
android:id="@+id/ivAwesome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/awesome50jp"
/>

这是我在java中的webview

Random r = new Random();
number = r.nextInt(9851);
String randomjoke = getStreamTextByLine("9851.txt", number);
String numstr = Integer.toString(number);
String head = "<head><style>@font-face {font-family: 'verdana';src: url('file:///android_asset/annoyingkettle.ttf');}body {font-family: 'verdana';}</style></head>";
String htmlData = "<html>" + head + numstr + "<body>" + "<p    align=\"justify\">"
        + randomjoke + "</p>" + "</body></html>";

Mywebview.loadDataWithBaseURL(null, htmlData, "text/html", "utf-8",
        "about:blank");
4

1 回答 1

0

在布局中翻转 ImageView 和 Webview。FrameLayouts 自下而上添加它们的子级,因此您的 ImageView 实际上位于包含文本的 WebView 之上,而不是位于其下方。

另一个注意事项是 ScrollView 应该只有一个孩子。您应该将 WebView 和 ImageView 包装在 FrameLayout 中。但是,您实际上并不需要将 WebView 放在 ScrollView 中,因此您实际上应该使所有内容都与父级匹配,并让 WebView 处理文本的滚动。确保在不同的 API 级别上对此进行测试,因为 WebView 的背景行为(关于不透明度)在不同的 API 级别上是不同的。

于 2013-12-05T01:28:21.710 回答