2016-03-01 9 views
0

Я свежо для Android-приложения. Я сделал свое первое приложение Webview. Теперь добавьте Loading Image (.jpg), прежде чем загружать сайт. Я ничего не знаю. Просто объясните ясно. Изображение может добавляться в приложение или изображение из другого источника.Android Webiew App показать изображение перед загрузкой сайта

Мой activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <WebView 
     android:id="@+id/activity_main_webview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</FrameLayout> 

AndroidManifest.xml ниже,

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.steptoinstall.steptoinstall" > 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

    <uses-permission android:name="android.permission.INTERNET" /> 

</manifest> 

MainActivity.java ниже,

package com.steptoinstall.steptoinstall; 

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 


public class MainActivity extends ActionBarActivity { 

    private WebView mWebView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mWebView = (WebView) findViewById(R.id.activity_main_webview); 

     mWebView = (WebView) findViewById(R.id.activity_main_webview); 
     mWebView.loadUrl("http://www.steptoinstall.com"); 

     // Enable Javascript 
     WebSettings webSettings = mWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 

     // Force links and redirects to open in the WebView instead of in a browser 
     mWebView.setWebViewClient(new WebViewClient()); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     return super.onOptionsItemSelected(item); 
    } 
} 
+1

То, что вы хотите изображение, как на заставке? –

+0

да, например, заставка или еще – KarSho

ответ

2

Я думаю, что самый простой способ сделать это - разместить imageView по webView, а затем, когда сайт будет загружен, скройте его.

Прежде всего и должно изменить XML, как это:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin"> 

    <WebView 
     android:id="@+id/activity_main_webview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <ImageView 
     android:id="@+id/activity_main_imageview" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" /> 


</FrameLayout> 

и добавьте эту строку в основной деятельности

mWebView.setWebViewClient(new WebViewClient() { 

    public void onPageFinished(WebView view, String url) { 
     // hide your imageView 
    } 
}); 

просто дайте мне знать, если у хочет больше деталей.

Update 2: В вашем MainActivity, после setContentView, добавьте это:

final ImageView mImageView = (ImageView)findViewById(R.id.activity_main_imageview);

после этого и можно установить изображение в этом ImageView в XML или в коде:

в XML измените свой ImageView:

<ImageView 
    android:id="@+id/activity_main_imageview" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:src="@drawable/img" /> 

и ваш MainActivi ty должно быть следующим:

mWebView = (WebView) findViewById(R.id.activity_main_webview); 

    mWebView = (WebView) findViewById(R.id.activity_main_webview); 
    mWebView.loadUrl("http://www.steptoinstall.com"); 

    // Enable Javascript 
    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 

    // Force links and redirects to open in the WebView instead of in a browser 
mWebView.setWebViewClient(new WebViewClient() { 

    public void onPageFinished(WebView view, String url) { 
    mImageView.setVisibility(View.GONE); 
    } 
    }); 
+0

да, г-н Z, я хочу получить более подробное объяснение, например, где я могу дать свое загрузочное изображение? ... – KarSho

+0

@KarSho, если этот ответ был полезен, отметьте его как правильный ответ –

0

Чтобы добавить экран всплеска перед загрузкой основного вида деятельности. затем добавьте это

import android.app.Activity; 

импорт android.content.Intent; import android.os.Bundle;

импорт com.example.tabs.R;

общественный класс Всплеск расширяет активность реализует Runnable {

Thread mThread; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.splash); 

    mThread = new Thread(this); 

    mThread.start(); 
} 

@Override 
public void run() 
{ 
    try 
    { 
     Thread.sleep(2000); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
    finally 
    { 
     startActivity(new Intent(Splash.this, MainActivity.class)); 

     finish(); 
    } 
} 

}

и XML

<?xml version="1.0" encoding="utf-8"?> 
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:orientation="vertical" 
 
    android:background="@drawable/splash" > 
 

 

 
</LinearLayout>

Смежные вопросы