2012-03-06 15 views
25

में वेबव्यू में यूआरएल लोड करते समय स्पलैश स्क्रीन मेरे पास एक ऐप है, जिसमें 2 गतिविधि है, पहला वेबवर्क में यूआरएल लोड करने के लिए दूसरा लॉन्च करता है।एंड्रॉइड ऐप

यह काम करता है, लेकिन यूआरएल लोड होने पर, वेबदृश्य खाली दिखाई देता है ... फिर मैं एक स्पलैश स्क्रीन या ऐसा कुछ बनाना चाहता हूं, यूआरएल लोड होने के दौरान इसे दिखाने के लिए, मैंने इसे एक नई गतिविधि में किया , लेकिन मुझे नहीं पता कि यूआरएल लोड होने पर तीसरी गतिविधि को बंद करने के लिए मैं क्या कर सकता हूं ... कृपया कोई मेरी मदद कर सकता है?

यह मेरा कोड है ... धन्यवाद!

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); 


    } 



} 

उत्तर

59

मैं शुरू में एक imageView दिखा और फिर एक बार WebView लोड हो जाए, इस

 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"); 

की तरह उनकी दृश्यता की अदला-बदली और मेरे XML लेआउट इस

<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" 
     /> 
+0

धन्यवाद! यह काम करता है :) – Migua

+0

धन्यवाद, इससे मुझे आवंटित करने में मदद मिली। – David

+1

यह काम करता है लेकिन झिलमिलाहट ... –

13

मैं की तरह लग रहा द्वारा यह कर एक गतिविधि है 1 एक्सएमएल फाइल और 1 जावा क्लास। xml फ़ाइल के अंदर मेरे पास है:

  1. WebView
  2. imageView, अपने आवेदन के लोगो,
  3. ProgressBar और
  4. TextView, एप्लिकेशन संस्करण।
  5. main.xml की

कोड:

NovcanikActivity.java की
<?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> 

कोड: कोई विवरण के लिए

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(); 

} 

} 

} 

क्षमा करें। अगर विवरण की आवश्यकता होगी, तो मैं पूरे कोड में विस्तार से वर्णन करूंगा।

+0

यह आश्चर्यजनक है। धन्यवाद! – smarble

+0

यह बिल्कुल है। मैं क्या चाहता हूँ। बहुत बहुत धन्यवाद .. :) – Laxmeena

+0

ग्रेट। साझा करने के लिए धन्यवाद –

संबंधित मुद्दे