Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You could do that.</p> <p>1). Add this code to your main Android class java class:</p> <pre><code>/* * Shows the splash screen over the full Activity */ protected void showSplashScreen() { mThisapp.runOnUiThread(new Runnable() { public void run() { // Get reference to display final Display display = getWindowManager().getDefaultDisplay(); // Get current orientation final int rotation = display.getRotation(); final String orientation; switch (rotation) { default: case Surface.ROTATION_0: orientation = "Portrait"; break; case Surface.ROTATION_90: orientation = "Landscape"; break; case Surface.ROTATION_180: orientation = "Reverse Portrait"; break; case Surface.ROTATION_270: orientation = "Reverse Landscape"; break; } Log.i(TAG, "Orientation :: " + orientation); // Create the layout for the dialog final LinearLayout root = new LinearLayout(mThisapp.getActivity()); // This method was deprecated in API level 13: display.getHeight and display.getWidth // Gets the size of the display, in pixels final Point outSize = new Point(); display.getSize(outSize); root.setMinimumHeight(outSize.y); root.setMinimumWidth(outSize.x); root.setOrientation(LinearLayout.VERTICAL); root.setBackgroundColor(mThisapp.getIntegerProperty("backgroundColor", Color.WHITE)); root.setLayoutParams(new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, 0.0F)); //root.setBackgroundResource(mThisapp.splashscreen); // ImageView Setup final ImageView imageView = new ImageView(mBaseContext); // Setting image resource imageView.setImageResource(mThisapp.splashscreen); // Setting image position imageView.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); root.addView(imageView); // Create and show the dialog splashDialog = new Dialog(mThisapp, android.R.style.Theme_Translucent_NoTitleBar); // Check to see if the splash screen should be full screen if ((getWindow().getAttributes().flags &amp; WindowManager.LayoutParams.FLAG_FULLSCREEN) == WindowManager.LayoutParams.FLAG_FULLSCREEN) { splashDialog.getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } splashDialog.setContentView(root); splashDialog.setCancelable(false); splashDialog.show(); } }); } </code></pre> <p>2). In public void onCreate(final Bundle savedInstanceState), add lines:</p> <pre><code>super.onCreate(savedInstanceState); mThisapp = this; mBaseContext = getBaseContext(); // Add splash screen super.setIntegerProperty("splashscreen", R.drawable.splash); ... // Show the splash dialog this.splashscreen = this.getIntegerProperty("splashscreen", 0); showSplashScreen(); // End of apache/cordova-android/DroidGap ... } </code></pre> <p>Yes, you have to have a splash image (in .png) in res folder.</p> <p>3). Modify onMessage</p> <pre><code>@Override /** * Called when a message is sent to plugin. * * @param id The message id * @param data The message data * @return Object or null */ public Object onMessage(final String id, final Object data) { Log.d(TAG, "onMessage(" + id + "," + data + ")"); if ("splashscreen".equals(id)) { if (data != null &amp;&amp; "hide".equals(data.toString())) { if (mThisapp.appView.getVisibility() != View.VISIBLE) { mThisapp.runOnUiThread(new Runnable() { public void run() { final Animation animationIn = AnimationUtils .loadAnimation(mBaseContext, R.anim.zoom_in); animationIn.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationEnd( final Animation animation) { } @Override public void onAnimationRepeat( final Animation animation) { } @Override public void onAnimationStart( final Animation animation) { if (splashDialog != null) mThisapp.removeSplashScreen(); } }); mThisapp.appView.setVisibility(View.VISIBLE); mThisapp.appView.requestFocus(); mThisapp.appView.startAnimation(animationIn); } }); } else { this.removeSplashScreen(); } } return null; } else if ("spinner".equals(id)) { if (data != null &amp;&amp; "stop".equals(data.toString())) { this.spinnerStop(); return null; } } return super.onMessage(id, data); } </code></pre> <p>4). Verify config.xnl has this line</p> <pre><code>&lt; plugin name="SplashScreen" value="org.apache.cordova.SplashScreen" /&gt; </code></pre> <p>5). In your Worklight initialize finish block, add this like:</p> <pre><code>if (navigator &amp;&amp; navigator.splashscreen) navigator.splashscreen.hide(); </code></pre> <p>Then you have a full splash screen with backend loading. When ready, show first screen.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload