Android切换页面效果的实现二:WebView+ViewPager
前言:
由于第一种切换页面的效果不能满足项目的要求,于是又找到另外一种更简单好用的方法来实现,顿时感觉,做项目开发,找到一种合适的方法能够减少很多时间,(刚开始自己弄的时候还想着自己写手势识别的方法呢)……
布局很简单,用到的是ViewPager控件,它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换。这个附加包是android-support-v4.jar
<?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" > <android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none" /> </RelativeLayout>
实现效果:类似zaker的文章阅读的效果,采用html对文章进行排版,图文并排很容易实现,推荐一个文章排版的html代码自动生成的工具:KompoZer,下载地址:http://sourceforge.net/projects/kompozer/


主体Activity主要是将一个个页面的webview放到一个List里面,然后viewpager控件有一个PagerAdapter的适配器,实现很简单
package cn.edu.stu.webview_viewpager; import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.webkit.WebView; public class MainActivity extends Activity { private ViewPager vpArticle;
private MyPagerAdapter myAdapter;
private List<View> mListViews; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main); myAdapter = new MyPagerAdapter();
vpArticle = (ViewPager) findViewById(R.id.viewpager);
vpArticle.setAdapter(myAdapter); mListViews = new ArrayList<View>();
addView(mListViews, "file:///android_asset/experience/exp_article2.html");
addView(mListViews, "file:///android_asset/experience/exp_article6.html");
addView(mListViews, "file:///android_asset/experience/exp_article10.html");
} private void addView(List<View> viewList,String url)
{
WebView webView=new WebView(this);
webView.loadUrl(url);
viewList.add(webView);
} private class MyPagerAdapter extends PagerAdapter { @Override
public void destroyItem(View arg0, int arg1, Object arg2) {
Log.d("k", "destroyItem");
((ViewPager) arg0).removeView(mListViews.get(arg1));
} @Override
public void finishUpdate(View arg0) {
Log.d("k", "finishUpdate");
} @Override
public int getCount() {
Log.d("k", "getCount");
return mListViews.size();
} @Override
public Object instantiateItem(View arg0, int arg1) {
Log.d("k", "instantiateItem");
((ViewPager) arg0).addView(mListViews.get(arg1), 0);
return mListViews.get(arg1);
} @Override
public boolean isViewFromObject(View arg0, Object arg1) {
Log.d("k", "isViewFromObject");
return arg0 == (arg1);
} @Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
Log.d("k", "restoreState");
} @Override
public Parcelable saveState() {
Log.d("k", "saveState");
return null;
} @Override
public void startUpdate(View arg0) {
Log.d("k", "startUpdate");
}
}
}
基本的实现demo就是这样,html的代码就不放在这里了……
Android切换页面效果的实现二:WebView+ViewPager的更多相关文章
- Android切换页面效果的实现一:WebView+ViewFlipper
前言: 这两周在帮学校做一个新生入学用的“新里程”的项目,要做到页面切换阅读的效果,自己百度了下,找到普遍是使用WebView+ViewFlipper的实现方法,但这种方法不能满足我的要求,因为它很难 ...
- VUE 实现tab切换页面效果
一 163邮箱登录tab切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- Android切换页面--setContentView
setContentView 一般切换页面,通过Intent,startActivity可以实现,但系统创建Activity是非常耗时的,如果对切换画面时间有要求,只能用setContentView在 ...
- android高级页面效果集锦
程序员界有个神奇的网站,那就是github,这个网站集合了一大批优秀的开源框架,极大地节省了开发者开发的时间,在这里我进行了一下整理,这样可以使我们在使用到时快速的查找到,希望对大家有所帮助! 一个强 ...
- Fragment+RadioButton实现点击切换页面效果
首先我们需要在主布局文件中 放一个 容器,方便让fragment加入进去,我们创建了四个Fragment,并用RedioButton实现了导航栏 MainActivity.java package c ...
- html+js(swiper.js)+css左右滑动切换页面效果,适配移动端
demo: 截图: 结构:1.swiper-progress.html2.css文件夹 -swiper.css -swiper.min.css 3.js文件夹 -swiper.min.js -swip ...
- Android开发之ViewPager实现多页面切换及动画效果(仿Android的Launcher效果)
Android开发中经常会有引导页或者切换页面等效果,本文采用ViewPager结合动画效果来实现仿Launcher以及页面切换的效果.源码地址在文章最后给出下载. 效果图如下: 1.Vi ...
- Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
感觉 Android 到处都是坑,每个地方都要把人折腾半天. 今天来简单说说 Android之ActionBar.Tabs.Fragment.ViewPager 实现标签页切换并缓存页面 关于他们的介 ...
- react实现页面切换动画效果
一.前情概要 注:(我使用的路由是react-router4) 如下图所示,我们需要在页面切换时有一个过渡效果,这样就不会使页面切换显得生硬,用户体验大大提升: but the 问题是 ...
随机推荐
- Binder的使用(跨进程——AIDL,非跨进程)
一.Binder类 1.作用:Binder是客户端与服务器端的通信的媒介(连接各种Manager的桥梁),客户端通过Binder对象获取服务器端提供的数据 (为什么要用Binder来提供数据呢,服务器 ...
- Python urllib和urllib2模块学习(一)
(参考资料:现代魔法学院 http://www.nowamagic.net/academy/detail/1302803) Python标准库中有许多实用的工具类,但是在具体使用时,标准库文档上对使用 ...
- php 汉字转换成拼音
class PinYin { private static $__data = array(); private static $__init = false; private static func ...
- ping-tool
https://serve.netsh.org/pub/ping-tool/ https://serve.netsh.org/pub/ipv4-hosts/
- JavaEE Tutorials (22) - 事务
22.1Java EE应用中的事务35222.2什么是事务35322.3容器托管事务353 22.3.1事务属性354 22.3.2回滚容器托管事务357 22.3.3同步会话bean的实例变量357 ...
- GIS 地图中术语解释
分辨率和像素的关系 像素是指照片的点数(表示照片是由多少点构成的),分辨率是指照片像素点的密度(是用单位尺寸内的像素点,一般用每英寸多少点表示--dpi).照片实际大小是像素决定的.一个像素很大的照片 ...
- 使用trim方法检测用户输入
首先需要封装trim方法,可以去除字符串两端空格的方法 function trim(str) { return str.replace(/^\s+|\s+$/g, ""); } 获 ...
- thinkphp 查询
一.普通查询方式 a.字符串 $arr=$m->where("sex=0 and username='gege'")->find(); b.数组 $data['sex' ...
- Database Initialization Parameters for Oracle E-Business Suite Release 12 (文档 ID 396009.1)
In This Document Section 1: Common Database Initialization Parameters For All Releases Section 2: Re ...
- NTFS 文件系统解析
1. windows 下磁盘文件读写 下面是读取D:\磁盘上的第0扇区 512 Bytes CreateFile()打开磁盘,获取文件句柄: SetFilePointer()设置读写的位置: Read ...