在Android中使用ImageButton在WebView上显示网站

时间:2013-05-07 09:38:01

标签: android android-webview imagebutton

private ImageButton imagebutton;

 private void init(){

        imagebutton =(ImageButton)findViewById(R.id.imageButton1);  
        final WebView WebView1 = new WebView(this);
        WebView1.addView(imagebutton);
        imagebutton.setOnClickListener(new OnClickListener() {

            @Override 

            public void onClick(View v) {

                 setContentView(WebView1);
                 WebView1.loadUrl("http://www.xxx.com/");

            }
        });


 }

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

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

<WebView
    android:id="@+id/WebView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignLeft="@+id/textView1"
    android:background="@drawable/ic_launcher"
    />

<ImageButton
    android:id="@+id/imageButton1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignBottom="@+id/WebView1"
    android:layout_alignParentLeft="true"
    android:layout_alignRight="@+id/WebView1"
    android:layout_below="@+id/textView1"
    android:src="@drawable/logo_xxx_xxx" 
    android:onClick="@+id/imagebutton"
    />

我想制作一个小应用程序,可以在我的应用程序中通过webview打开一个网站。我有1个“imagebutton”和“WebView”组件。当我点击我的网站有“徽标”的图像按钮时,我的应用程序应该在同一个屏幕上打开我的网站。我该怎么做?

3 个答案:

答案 0 :(得分:1)

我没有按照你的布局,因为我觉得你有点困惑:

  • fill_parent和alignements。当你在上面设置fill_parent时,为什么要使用alignements方面的webview? fill_parent尝试占用所有父视图。

  • onClick调用在您设置内容视图的同一活动上定义的java函数。不是你放的@+id/imagebutton。顺便说一句,您正在为图像按钮设置一个onclick监听器,因此您可以安全地删除布局上的onClick。

我使用了一个布局,其中图像将位于屏幕的中心,当您单击将在webview上加载网站时,一旦加载,图标将消失,并且将显示webview。

简单RelativeLayout activity_webview.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<WebView
    android:id="@+id/webviewactivity_webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:visibility="invisible" />

<ImageButton
    android:id="@+id/webviewactivity_imagebutton"
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:layout_centerInParent="true"
    android:background="@drawable/ic_launcher"
    android:contentDescription="@null" />

</RelativeLayout>

代码:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;

public class WebViewActivity extends Activity {

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_webiview);
    final WebView wb = (WebView) findViewById(R.id.webviewactivity_webview);
    wb.setVisibility(View.INVISIBLE);
    final ImageButton ib = (ImageButton) findViewById(R.id.webviewactivity_imagebutton);
    ib.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            wb.loadUrl("http://www.google.com");

        }

    });
    wb.setWebViewClient(new WebViewClient(){
        public void onPageFinished(WebView view, String url){
            ib.setVisibility(View.INVISIBLE);
            wb.setVisibility(View.VISIBLE);             
        }
    });
}

}

如您所见,我使用了创建Android项目时出现的默认徽标。 将布局的属性调整为您真正想要的。

我建议你从简单的活动开始练习布局。

答案 1 :(得分:0)

这段代码对我有用

WebView myWebView = (WebView) findViewById(R.id.webView1);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.google.com");

将此代码放入ImageView的onClick侦听器

答案 2 :(得分:0)

               final WebView wb = (WebView) findViewById(R.id.webviewactivity_webview);
               wb.setVisibility(View.INVISIBLE);
               wb.getSettings().setBuiltInZoomControls(true);
               WebSettings webSettings = wb.getSettings();
               webSettings.setJavaScriptEnabled(true);
               webSettings.setAllowFileAccess(true);
               wb.loadURL("http://www.google.co.in");