Hear is the code which explain, How to create Browser using WebView with navigation button Functionality.
Layout File : activity_detailed_news.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:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bhadreshtech.Activity.DetailedNewsActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/mWebNews" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/linearLayout4"> </WebView> <ImageView android:layout_width="wrap_content" android:src="@drawable/my_progress_indeterminate" android:id="@+id/mImgProgress" android:layout_centerInParent="true" android:layout_height="wrap_content" /> <RelativeLayout android:id="@+id/linearLayout4" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_alignTop="@+id/mImgRefresh" android:layout_alignBottom="@+id/mImgRefresh" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/mImgRefresh" android:layout_toStartOf="@+id/mImgRefresh"> <TextView android:id="@+id/mLblPrevious" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_gravity="center_vertical" android:padding="10dp" android:gravity="center" android:text="Previous" android:textColor="@color/blue_light" android:textSize="15dp" /> <TextView android:id="@+id/mLblNext" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:padding="10dp" android:textColor="@color/blue_light" android:gravity="center" android:paddingLeft="20dp" android:text="Next" android:textSize="15dp" /> </LinearLayout> <ImageView android:id="@+id/mImgRefresh" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_gravity="right" android:padding="10dp" android:src="@drawable/reload_icon" android:textSize="15dp" /> </RelativeLayout> </RelativeLayout> </RelativeLayout>
Class File : DetailedNewsActivity
package com.bhadreshtech.Activity; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; import android.widget.TextView; import com.bhadreshtech.R; public class DetailedNewsActivity extends AppCompatActivity implements View.OnClickListener { private TextView mLblTitleAction; private ImageView mImgMenuToggle; private ImageView mImgAction; private String url = "http://www.google.com"; private int from = 0; private WebView mWebNews; private ImageView mImgBacks, mImgRefresh; private TextView mLblNext, mLblPrevious; private ImageView mImgProgress; private boolean blag_progress; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detailed_news); Bundle bundle = getIntent().getExtras(); if (bundle != null) { url = bundle.getString("url") + ""; from = bundle.getInt("from"); } initializeView(); setClickEvent(); } private void setClickEvent() { mImgRefresh.setOnClickListener(this); mLblNext.setOnClickListener(this); mLblPrevious.setOnClickListener(this); mImgMenuToggle.setOnClickListener(this); } private void initializeView() { getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); getSupportActionBar().setCustomView(R.layout.custome_actiobar); getSupportActionBar().setDisplayHomeAsUpEnabled(false); mLblTitleAction = (TextView) findViewById(R.id.mLblTitleAction); mLblTitleAction.setText("News Detail"); mImgProgress = (ImageView) findViewById(R.id.mImgProgress); mImgProgress.setVisibility(View.VISIBLE); mImgMenuToggle = (ImageView) findViewById(R.id.mImgMenuToggle); mImgMenuToggle.setImageDrawable(getResources().getDrawable(R.drawable.cloase_bt)); mImgAction = (ImageView) findViewById(R.id.mImgAction); mImgAction.setVisibility(View.INVISIBLE); mImgRefresh = (ImageView) findViewById(R.id.mImgRefresh); mLblNext = (TextView) findViewById(R.id.mLblNext); mLblPrevious = (TextView) findViewById(R.id.mLblPrevious); intializeWebView(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.mImgRefresh: if (blag_progress) { mWebNews.onPause(); mImgProgress.setVisibility(View.GONE); mImgRefresh.setImageDrawable(getResources().getDrawable(R.drawable.reload_icon)); blag_progress = false; } else { mImgProgress.setVisibility(View.VISIBLE); mWebNews.reload(); mImgRefresh.setImageDrawable(getResources().getDrawable(R.drawable.close_icon)); blag_progress = true; } break; case R.id.mImgMenuToggle: this.finish(); break; case R.id.mLblNext: if (mWebNews.canGoForward()) { mWebNews.goForward(); } break; case R.id.mLblPrevious: if (mWebNews.canGoBack()) { mWebNews.goBack(); } break; } } private void intializeWebView() { mWebNews = (WebView) findViewById(R.id.mWebNews); mWebNews.getSettings().setJavaScriptEnabled(true); mWebNews.loadUrl(url); //mWebNews.loadUrl("file:///android_asset/ppp1.html"); mWebNews.setWebViewClient(new WebViewClient()); mWebNews.setInitialScale(1); mWebNews.getSettings().setBuiltInZoomControls(true); mWebNews.getSettings().setUseWideViewPort(true); mWebNews.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { if (progress >= 80) { mImgRefresh.setImageDrawable(getResources().getDrawable(R.drawable.reload_icon)); blag_progress = false; mImgProgress.setVisibility(View.GONE); } else { mImgRefresh.setImageDrawable(getResources().getDrawable(R.drawable.close_icon)); blag_progress = true; mImgProgress.setVisibility(View.VISIBLE); } } }); } }
No comments:
Post a Comment