(刚开始工作是的博文留作纪念不做修改)webview的缩放+zoomcontrols

webView=(WebView)findViewById(R.id.browser);//其中r.id.browser 是 layout/xx.xml 中的 webview

webView.getSettings().setJavaScriptEnabled(true);//支持js

WebSettings ws=webView.getSettings();ws.setUseWideViewPort(true);//让浏览器支持用户自定义view

webView.setInitialScale(39);//这个就是重点,你可以在这里根据需求来设置缩放比例

其中竖屏时39,横屏时57.

也可以 通过zoomIn(); zoomOut();两方法来实现放大和缩小

对于scrollview 中嵌套 webview 导致 webview 中的锚点链接失效的解决方法:

 

WebView 有一个方法web.setWebChromeClient ();用来监控页面的JS事件,包括alert confirm

(1)       继承WebChromeClient重写onJsAlert方法,目的是为了在页面中获取锚点的横纵坐标,通过jsalert传输坐标数据,这样onJsAlert方法就可以捕获到数据

(2)       定义全局变量,获取ScrollView实例

(3)       在onJsAlert中通过ScrollView的scrollTo方法进行滚动条定位

一、简介

  ZoomControls是一组可缩放的控件。它包含俩个按钮(放大按钮、缩小按钮)

二、重要方法

  hasFocus():判断焦点

  hide():隐藏

  onTouchEvent(MotionEvent event):现这个方法来处理触摸屏移动事件

  setIsZoomInEnabled(boolean isEnabled):是否允许放大

  setIsZoomOutEnabled(boolean isEnabled):是否允许缩小

  setOnZoomInClickListener(View.OnClickListener listener):注册放大监听器

  setOnZoomOutClickListener(View.OnClickListener listener):注册缩小监听器

  setZoomSpeed(long speed):设置缩放速度

  show():显示

三、实例

  1.布局文件

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TextView android:id="@+id/text" android:layout_width="wrap_content"
  android:layout_height="wrap_content" android:text="ZoomControls实例"
  android:textSize="12px" />
 <ZoomControls android:id="@+id/zoomcontrols"
  android:layout_gravity="bottom" android:layout_width="wrap_content"
  android:layout_height="wrap_content" />
</LinearLayout>

  2.Java代码

package com.wjq;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.ZoomControls;

public class ZoomControlsDemo extends Activity {
 private ZoomControls zoomControls;
 static long size = 12;
 private TextView text;

 /*
  * (non-Javadoc)
  *
  * @see android.app.Activity#onCreate(android.os.Bundle)
  */
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);

  setContentView(R.layout.zoomcontrols);

  setTitle("ZoomControls");
  zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);
  text = (TextView) findViewById(R.id.text);
  zoomControls.setOnZoomInClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
 

    size = size + 2;
    text.setTextSize(size);
   }
  });

  zoomControls.setOnZoomOutClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {

    size = size - 2;
    text.setTextSize(size);
   }

  });
 }

}

猜你喜欢

转载自blog.csdn.net/zhujohnle/article/details/6656495