studio programacion pagina móviles directo desde desarrollo curso crear chrome aplicaciones aplicacion acceso abrir android android-activity webview screen splash

programacion - Pantalla de bienvenida al cargar una URL en una vista web en la aplicación de Android



manual de programacion android pdf (2)

Tengo una aplicación que tiene 2 actividades, la primera se lanza la segunda para cargar una url en una vista web.

Funciona, pero mientras se carga la url, la vista web aparece vacía ... entonces quiero hacer una pantalla de bienvenida o algo así, para mostrarlo mientras se carga la url, lo hice en una actividad nueva, pero no No sé qué puedo hacer para cerrar la tercera actividad cuando la URL está cargada ... ¿Alguien puede ayudarme?

Este es mi código ... ¡Gracias!

public class Visor extends Activity { WebView mWebView; int Result; @Override public void onCreate (Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.visor); Bundle extras=getIntent().getExtras(); String s= extras.getString("url"); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setPluginsEnabled(true); mWebView.getSettings().setAllowFileAccess(true); mWebView.loadUrl(s); mWebView.setWebViewClient(new VisorClient()); mWebView.getSettings().setBuiltInZoomControls(true); } private class VisorClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { lanzarIntro(); } @Override public void onPageFinished(WebView view, String url) { mWebView.loadUrl(url); } } public void lanzarIntro(){ Intent i=new Intent (this, Intro.class); startActivity(i); } }


Lo hago mostrando inicialmente un ImageView y luego una vez que el WebView se haya cargado, intercambiando su visibilidad de esta manera.

WebView wv = (WebView) findViewById(R.id.webView1); wv.getSettings().setJavaScriptEnabled(true); wv.setWebViewClient(new WebViewClient() { ... @Override public void onPageFinished(WebView view, String url) { //hide loading image findViewById(R.id.imageLoading1).setVisibility(View.GONE); //show webview findViewById(R.id.webView1).setVisibility(View.VISIBLE); } }); wv.loadUrl("http://yoururlhere.com");

Y mi diseño xml se ve así

<ImageView android:id="@+id/imageLoading1" android:layout_height="fill_parent" android:layout_width="fill_parent" android:visibility="visible" android:src="@drawable/vert_loading" /> <WebView android:id="@+id/webView1" android:layout_height="fill_parent" android:layout_width="fill_parent" android:visibility="gone" />


Tengo una actividad. 1 archivo xml y 1 clase Java. Dentro del archivo xml tengo:

  1. WebView
  2. ImageView, logotipo de mi aplicación,
  3. ProgressBar y
  4. TextView, versión de la aplicación.

Código de main.xml:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android" a:layout_width="fill_parent" a:layout_height="fill_parent" a:background="#aaaaaa" a:orientation="vertical" > <WebView a:id="@+id/webView1" a:layout_width="fill_parent" a:layout_height="fill_parent" /> <ImageView a:id="@+id/imageView1" a:layout_width="wrap_content" a:layout_height="wrap_content" a:layout_alignParentTop="true" a:layout_centerHorizontal="true" a:layout_marginTop="46dp" a:src="@drawable/logo" /> <ProgressBar a:id="@+id/progressBar1" a:layout_width="wrap_content" a:layout_height="wrap_content" a:layout_below="@+id/imageView1" a:layout_centerHorizontal="true" /> <TextView a:id="@+id/textView1" a:layout_width="wrap_content" a:layout_height="wrap_content" a:layout_alignParentBottom="true" a:layout_alignParentRight="true" a:layout_marginBottom="13dp" a:layout_marginRight="13dp" a:text="version 1.0" a:textAppearance="?android:attr/textAppearanceSmall" a:textColor="#444444" /> </RelativeLayout>

Código de NovcanikActivity.java:

package zm.Nocanik; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.webkit.DownloadListener; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; public class NovcanikActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView webview = (WebView) findViewById(R.id.webView1); WebSettings websettings = webview.getSettings(); websettings.setJavaScriptEnabled(true); websettings.setSaveFormData(false); websettings.setSavePassword(false); webview.loadUrl("http://m.novcanik.net/?appvers=1.0"); webview.setHorizontalScrollBarEnabled(false); webview.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); webview.setBackgroundColor(128); webview.setWebViewClient(new NovcanikWebViewClient()); webview.setDownloadListener(new DownloadListener() { public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); startActivity(intent); } }); } public void visible(){ WebView webview = (WebView) findViewById(R.id.webView1); ImageView logo = (ImageView) findViewById(R.id.imageView1); ProgressBar bar = (ProgressBar) findViewById(R.id.progressBar1); TextView version = (TextView) findViewById(R.id.textView1); webview.setVisibility(10); logo.setVisibility(0); bar.setVisibility(0); version.setVisibility(0); } public void unvisible(){ WebView webview = (WebView) findViewById(R.id.webView1); ImageView logo = (ImageView) findViewById(R.id.imageView1); ProgressBar bar = (ProgressBar) findViewById(R.id.progressBar1); TextView version = (TextView) findViewById(R.id.textView1); webview.setVisibility(0); logo.setVisibility(10); bar.setVisibility(10); version.setVisibility(10); } private class NovcanikWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView webview, String url){ webview.loadUrl(url); return true; } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // TODO Auto-generated method stub view.loadUrl("file:///android_asset/noconnection.html"); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { visible(); } @Override public void onPageFinished(WebView view, String url) { unvisible(); } } }

Perdón por ninguna descripción. Si hubiera necesidad de una descripción, describiré en detalle todo el código.