activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" tools:context=".MainActivity" android:background="#fcfdfb" > <ProgressBar android:id="@+id/pb" android:layout_width="match_parent" android:layout_height="wrap_content" android:progressDrawable="@drawable/progressbar_states" style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:visibility="gone" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Load URL" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" /> <WebView android:id="@+id/web_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/pb" /> </RelativeLayout>
drawable/progressbar_states.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android1="http://schemas.android.com/apk/res/android" > <item android1:id="@android:id/background"> <shape android1:shape="line"> <stroke android1:width="2dp" android1:color="#bebebe"/> </shape> </item> <item android1:id="@android:id/progress"> <clip android1:clipOrientation="horizontal" android1:gravity="left"> <shape android1:shape="line"> <stroke android1:width="2dp" android1:color="#248e49"/> </shape> </clip> </item> </layer-list>
MainActivity.java
package com.cfsuman.me.androidcodesnippets; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Context mContext; private Activity mActivity; private RelativeLayout mRelativeLayout; private Button mButton; private WebView mWebView; private ProgressBar mProgressBar; @Override protected void onCreate(Bundle savedInstanceState) { // Request window feature action kafe requestWindowFeature(Window.FEATURE_ACTION_BAR); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get the application context mContext = getApplicationContext(); // Get the activity mActivity = MainActivity.this; // Change the action kafe color getSupportActionBar().setBackgroundDrawable( new ColorDrawable(Color.parseColor("#FFFF0000")) ); // Get the widgets reference from XML layout mRelativeLayout = (RelativeLayout) findViewById(R.id.rl); mButton = (Button) findViewById(R.id.btn); mWebView = (WebView) findViewById(R.id.web_view); mProgressBar = (ProgressBar) findViewById(R.id.pb); // Set a click listener for button widget mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Request to render the web page renderWebPage("http://developer.android.com/guide/index.html"); } }); } // Custom method to render a web page protected void renderWebPage(String urlToRender){ mWebView.setWebViewClient(new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon){ // Do something on page loading started // Visible the progressbar mProgressBar.setVisibility(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url){ // Do something when page loading finished Toast.makeText(mContext,"Page Loaded.",Toast.LENGTH_SHORT).show(); } }); /* WebView A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply display some online content within your Activity. It uses the WebKit rendering engine to display web pages and includes methods to navigate forward and backward through a history, zoom in and out, perform text searches and more. WebChromeClient WebChromeClient is called when something that might impact a browser UI happens, for instance, progress updates and JavaScript alerts are sent here. */ mWebView.setWebChromeClient(new WebChromeClient(){ /* public void onProgressChanged (WebView view, int newProgress) Tell the host application the current progress of loading a page. Parameters view : The WebView that initiated the callback. newProgress : Current page loading progress, represented by an integer between 0 and 100. */ public void onProgressChanged(WebView view, int newProgress){ // Update the progress kafe with page loading progress mProgressBar.setProgress(newProgress); if(newProgress == 100){ // Hide the progressbar mProgressBar.setVisibility(View.GONE); } } }); // Enable the javascript mWebView.getSettings().setJavaScriptEnabled(true); // Render the web page mWebView.loadUrl(urlToRender); } }



Komentar
Posting Komentar