1.效果图
2.代码
HealthActivity
- package com.example.walkersimulate;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.ActionBar.LayoutParams;
- import android.app.Activity;
- import android.os.Bundle;
- import android.support.v4.view.ViewPager;
- import android.support.v4.view.ViewPager.OnPageChangeListener;
- import android.util.DisplayMetrics;
- import android.view.Display;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- public class HealthActivity extends Activity {
- private int currIndex;//当前页卡编号
- private TextView tvCursor;
- private TextView tvHealthNews;
- private TextView tvIllnessDefense;
- private ViewPager vpHealth;
- private ImageView ivHealthBack;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_health);
- initViews();
- initCursor();
- initViewPager();
- setListeners();
- }
- private void initViews(){
- ivHealthBack=(ImageView)findViewById(R.id.icons_health_back);
- tvCursor=(TextView)findViewById(R.id.cursor);
- tvHealthNews=(TextView)findViewById(R.id.tv_healthnews);
- tvIllnessDefense=(TextView)findViewById(R.id.tv_healthill);
- vpHealth=(ViewPager)findViewById(R.id.viewpager);
- }
- public void initCursor(){
- Display display=getWindow().getWindowManager().getDefaultDisplay();
- DisplayMetrics metrics=new DisplayMetrics();
- display.getMetrics(metrics);
- //取得手机屏幕宽度的一半
- int tabLineLength=metrics.widthPixels/2;
- //设置游标的宽度为屏幕宽度的一半
- LayoutParams lp=(LayoutParams)tvCursor.getLayoutParams();
- lp.width=tabLineLength;
- tvCursor.setLayoutParams(lp);
- }
- private void initViewPager(){
- vpHealth=(ViewPager)findViewById(R.id.viewpager);
- List<View>views=new ArrayList<View>();
- views.add(new HealthWebView(this).getView("http://cms.hxky.cn/wap/jkxz/"));
- views.add(new HealthWebView(this).getView("http://cms.hxky.cn/wap/jbfz/"));
- vpHealth.setAdapter(new HealthViewPagerAdapter(views));
- //给ViewPager设置适配器
- vpHealth.setCurrentItem(0);
- }
- private void setListeners(){
- ivHealthBack.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- finish();
- }
- });
- //点击健康须知
- tvHealthNews.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- // TODO Auto-generated method stub
- vpHealth.setCurrentItem(0);
- }
- });
- tvIllnessDefense.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- // TODO Auto-generated method stub
- vpHealth.setCurrentItem(1);
- }
- });
- vpHealth.setOnPageChangeListener(new OnPageChangeListener() {
- @Override
- public void onPageSelected(int position) {
- // TODO Auto-generated method stub
- currIndex=position;
- }
- @Override
- public void onPageScrolled(int position, float percent, int arg2) {
- // TODO Auto-generated method stub
- LinearLayout.LayoutParams ll =
- (android.widget.LinearLayout.LayoutParams)tvCursor
- .getLayoutParams();
- if(currIndex==position){
- ll.leftMargin=(int)(currIndex*tvCursor.getWidth()+percent
- *tvCursor.getWidth());
- }else if(currIndex>position){
- ll.leftMargin=(int)(currIndex*tvCursor.getWidth()-(1-percent)
- *tvCursor.getWidth());
- }
- tvCursor.setLayoutParams(ll);
- }
- @Override
- public void onPageScrollStateChanged(int position) {
- // TODO Auto-generated method stub
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.health, menu);
- return true;
- }
- }
HealthWebView
- package com.example.walkersimulate;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- public class HealthWebView {
- private Context context;
- public HealthWebView(Context context){
- this.context=context;
- }
- public View getView(String url){
- View view=LayoutInflater.from(context).inflate(R.layout.pagerofhealth, null);
- WebView webView=(WebView)view.findViewById(R.id.wvHealth);
- webView.loadUrl(url);
- //设置支持JavaScript脚本
- webView.getSettings().setJavaScriptEnabled(true);
- /**
- * 禁止系统浏览器打开页面
- */
- webView.setWebViewClient(new WebViewClient(){
- public boolean shouldOverrideUrlLoading(WebView view,String url){
- view.loadUrl(url);
- return true;
- }
- });
- return view;
- }
- }
package com.example.walkersimulate;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class HealthWebView {
private Context context;
public HealthWebView(Context context){
this.context=context;
}
public View getView(String url){
View view=LayoutInflater.from(context).inflate(R.layout.pagerofhealth, null);
WebView webView=(WebView)view.findViewById(R.id.wvHealth);
webView.loadUrl(url);
//设置支持JavaScript脚本
webView.getSettings().setJavaScriptEnabled(true);
/**
* 禁止系统浏览器打开页面
*/
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view,String url){
view.loadUrl(url);
return true;
}
});
return view;
}
}
HealthViewPagerAdapter
- package com.example.walkersimulate;
- import java.util.List;
- import android.support.v4.view.PagerAdapter;
- import android.view.View;
- import android.view.ViewGroup;
- public class HealthViewPagerAdapter extends PagerAdapter {
- private List<View>viewList;
- public HealthViewPagerAdapter(List<View>viewList){
- this.viewList=viewList;
- }
- public int getCount(){
- return viewList.size();
- }
- public boolean isViewFromObject(View view,Object object){
- return view==object;
- }
- public Object instantiateItem(ViewGroup container,int position){
- container.addView(viewList.get(position));
- return viewList.get(position);
- }
- public void destroyItem(ViewGroup container,int position,Object object){
- container.removeView( viewList.get(position));
- }
- }
package com.example.walkersimulate;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
public class HealthViewPagerAdapter extends PagerAdapter {
private List<View>viewList;
public HealthViewPagerAdapter(List<View>viewList){
this.viewList=viewList;
}
public int getCount(){
return viewList.size();
}
public boolean isViewFromObject(View view,Object object){
return view==object;
}
public Object instantiateItem(ViewGroup container,int position){
container.addView(viewList.get(position));
return viewList.get(position);
}
public void destroyItem(ViewGroup container,int position,Object object){
container.removeView( viewList.get(position));
}
}
activity_health
- <LinearLayout 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"
- android:orientation="vertical"
- tools:context=".HealthActivity" >
- <include layout="@layout/health_layout_titlebar"/>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <!-- 健康新知 -->"
- <TextView
- android:id="@+id/tv_healthnews"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_weight="1"
- android:gravity="center"
- android:padding="6dp"
- android:text="健康新知"
- android:textSize="18sp" />
- <!-- 疾病防治-->
- <TextView
- android:id="@+id/tv_healthill"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_weight="1"
- android:gravity="center"
- android:padding="6dp"
- android:text="疾病防治"
- android:textSize="18sp"
- />
- </LinearLayout>
- <TextView
- android:id="@+id/cursor"
- android:layout_width="125dp"
- android:layout_height="5dp"
- android:layout_marginLeft="20dp"
- android:background="#990033"
- />
- <android.support.v4.view.ViewPager
- android:id="@+id/viewpager"
- android:layout_width="match_parent"
- android:layout_height="match_parent"/>
- </LinearLayout>