如何在Cordova / PhoneGap for Android中的WebView上设置背景图像?

时间:2013-08-05 22:02:03

标签: android webview cordova

我不只是在寻找API中的Splash Screen功能;如果可能的话,我希望HTML内容使用透明背景,并依靠WebView提供背景图像。这样的事情有可能吗?

除此之外,我是否至少可以在WebView上设置一个“渗透”到HTML内容的背景颜色?

3 个答案:

答案 0 :(得分:5)

在挖掘Cordova源代码和Android文档后想出来。在src / com /.../ MyApp.java中:

public class MyApp extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        super.loadUrl(Config.getStartUrl(), 20000);

        // Must be after loadUrl!
        super.appView.setBackgroundColor(0x00000000); // transparent RGB
        super.appView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);

        // Put background image in res/drawable/splash.jpg
        Drawable theSplash = getResources().getDrawable(R.drawable.splash);
        super.root.setBackground(theSplash);
    }
}

CSS:

html,
body,
.transparent { background-color: transparent !important; }

答案 1 :(得分:1)

我不确定设置图像,但您可以使用以下方法设置背景颜色:

    <preference name="backgroundColor" value="0x00000000" />

您将在以下位置添加:res / xml / config.xml

答案 2 :(得分:1)

您可能希望在构建中自动执行其中某些操作,但这样可行。这是我在应用程序加载时在Android中出现启动画面的方式(不是在加载或人为延迟之后)......

在platforms / android / res / values / styles.xml

中创建一个文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyTheme" parent="@android:style/Theme.NoTitleBar">
        <!-- set the splash screen as the background image on all windows -->
        <item name="android:windowBackground">@drawable/screen</item>
    </style>
</resources>

在您的platforms / android / Manifest.xml中,用@ style / MyTheme

替换主题

在config.xml文件中添加以下两行

<!-- make the webview transparent -->
<preference name="backgroundColor" value="0x00000000" />
<!-- cordova will copy the splash screen file to screen.png, 
     but seems to ignore it after then 
-->
<splash src="res/splash/splash.png"/>

显然,您需要使用splash.png文件。