首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:如何在加载资源时显示动画闪屏

Android:如何在加载资源时显示动画闪屏
EN

Stack Overflow用户
提问于 2012-12-21 18:20:42
回答 1查看 4.8K关注 0票数 2

我想显示一个动画图像(目前使用一组PNG)作为启动屏幕,而资源正在加载。

我已经能够使用this显示闪屏了。但问题是:闪屏显示指定的时间,然后出现黑屏2-3秒,然后加载index.html

理想情况下,我想要的是在加载资源时显示闪屏。加载资源后,拉出闪屏并立即加载index.html文件。

下面是我的代码:

代码语言:javascript
复制
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Splash screen view
    setContentView(R.layout.splash);

    // Start animating the image
    final ImageView splashImageView = (ImageView) findViewById(R.id.SplashImageView);
    splashImageView.setBackgroundResource(R.drawable.flag);
    final AnimationDrawable frameAnimation = (AnimationDrawable)splashImageView.getBackground();
    splashImageView.post(new Runnable(){
        @Override
        public void run() {
            frameAnimation.start();             
        }           
    });


    final SplashScreen sPlashScreen = this;   

    // The thread to wait for splash screen events
    mSplashThread =  new Thread(){
        @Override
        public void run(){
            try {
                synchronized(this){
                    // Wait given period of time or exit on touch
                    wait(10000);
                }
            } 
            catch(InterruptedException ex){                 
            }

            finish();

            // Run next activity
            Intent intent = new Intent();
            intent.setClass(sPlashScreen, SomeActivity.class);
            startActivity(intent);
            //stop();               
        }
    };      
    mSplashThread.start();      
} 

public class SomeActivity extends DroidGap {                
    @Override
    public void onCreate(Bundle savedInstanceState) {    
     //some code to copy database files.
    }
}

请注意我的开发环境。android-sdk: api级别17,Phonegap: 2.1.0。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-22 04:31:12

这可以用Phonegap/Cordova 1.7版本来解决。由于您使用的是2.1,因此此解决方案也将可供您使用。

在主Phonegap活动类中,初始化初始屏幕和loadURL方法:

代码语言:javascript
复制
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("file:///android_asset/www/index.html", 10000);

10000是以毫秒为单位的时间,因此在接下来的10秒内,闪屏img将可见。你甚至可以使用30-60。稍后我会解释原因。

为了在PhoneGap安卓应用程序中有一个闪屏,你需要把你的splash.png文件放到:

代码语言:javascript
复制
res/drawable-ldpi (small: at least 426 x 320)
res/drawable-mdpi (medium: at least 470 x 320)
res/drawable-hdpi (large: at least 640 x 480) 
res/drawable-xdpi (xlarge: at least 960 x 720)

现在主要的事情是:在你的Javascript中添加deviceready事件,如下所示:

代码语言:javascript
复制
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    // Version 1.7 use this method
    cordova.exec(null, null, "SplashScreen", "hide", []);
    // Version 1.8+ use this mehod
    navigator.splashscreen.hide();

因此,即使启动画面仍然可见,navigator.splashscreen.hide();也会将其隐藏,并显示加载的html。

希望这对你有帮助。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13988266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档