WalkerSimulate

来源:互联网 发布:新西兰博士含金量知乎 编辑:程序博客网 时间:2024/05/01 04:53

1.效果图

2.代码

HealthActivity

[java] view plain copy
print?
  1. package com.example.walkersimulate;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import android.app.ActionBar.LayoutParams;  
  7. import android.app.Activity;  
  8. import android.os.Bundle;  
  9. import android.support.v4.view.ViewPager;  
  10. import android.support.v4.view.ViewPager.OnPageChangeListener;  
  11. import android.util.DisplayMetrics;  
  12. import android.view.Display;  
  13. import android.view.Menu;  
  14. import android.view.View;  
  15. import android.view.View.OnClickListener;  
  16. import android.widget.ImageView;  
  17. import android.widget.LinearLayout;  
  18. import android.widget.TextView;  
  19.   
  20. public class HealthActivity extends Activity {  
  21. private int currIndex;//当前页卡编号  
  22. private TextView tvCursor;  
  23. private TextView tvHealthNews;  
  24. private TextView tvIllnessDefense;  
  25. private ViewPager vpHealth;  
  26. private ImageView ivHealthBack;  
  27.     @Override  
  28.     protected void onCreate(Bundle savedInstanceState) {  
  29.         super.onCreate(savedInstanceState);  
  30.         setContentView(R.layout.activity_health);  
  31.         initViews();  
  32.         initCursor();  
  33.         initViewPager();  
  34.         setListeners();  
  35.     }  
  36. private void initViews(){  
  37.     ivHealthBack=(ImageView)findViewById(R.id.icons_health_back);  
  38.     tvCursor=(TextView)findViewById(R.id.cursor);  
  39.     tvHealthNews=(TextView)findViewById(R.id.tv_healthnews);  
  40.     tvIllnessDefense=(TextView)findViewById(R.id.tv_healthill);  
  41.     vpHealth=(ViewPager)findViewById(R.id.viewpager);  
  42. }  
  43. public void initCursor(){  
  44.     Display display=getWindow().getWindowManager().getDefaultDisplay();  
  45.     DisplayMetrics metrics=new DisplayMetrics();  
  46.     display.getMetrics(metrics);  
  47.     //取得手机屏幕宽度的一半  
  48.     int tabLineLength=metrics.widthPixels/2;  
  49.     //设置游标的宽度为屏幕宽度的一半  
  50.     LayoutParams lp=(LayoutParams)tvCursor.getLayoutParams();  
  51.     lp.width=tabLineLength;  
  52.     tvCursor.setLayoutParams(lp);  
  53. }  
  54. private void initViewPager(){  
  55.     vpHealth=(ViewPager)findViewById(R.id.viewpager);  
  56.     List<View>views=new ArrayList<View>();  
  57.     views.add(new HealthWebView(this).getView("http://cms.hxky.cn/wap/jkxz/"));  
  58.     views.add(new HealthWebView(this).getView("http://cms.hxky.cn/wap/jbfz/"));  
  59.     vpHealth.setAdapter(new HealthViewPagerAdapter(views));  
  60.     //给ViewPager设置适配器  
  61.     vpHealth.setCurrentItem(0);  
  62.       
  63. }  
  64. private void setListeners(){  
  65.     ivHealthBack.setOnClickListener(new OnClickListener() {  
  66.           
  67.         @Override  
  68.         public void onClick(View arg0) {  
  69.             // TODO Auto-generated method stub  
  70.             finish();  
  71.         }  
  72.     });  
  73.     //点击健康须知  
  74.     tvHealthNews.setOnClickListener(new OnClickListener() {  
  75.           
  76.         @Override  
  77.         public void onClick(View view) {  
  78.             // TODO Auto-generated method stub  
  79.             vpHealth.setCurrentItem(0);  
  80.         }  
  81.     });  
  82.     tvIllnessDefense.setOnClickListener(new OnClickListener() {  
  83.           
  84.         @Override  
  85.         public void onClick(View view) {  
  86.             // TODO Auto-generated method stub  
  87.             vpHealth.setCurrentItem(1);  
  88.         }  
  89.     });  
  90.     vpHealth.setOnPageChangeListener(new OnPageChangeListener() {  
  91.           
  92.         @Override  
  93.         public void onPageSelected(int position) {  
  94.             // TODO Auto-generated method stub  
  95.             currIndex=position;  
  96.         }  
  97.           
  98.         @Override  
  99.         public void onPageScrolled(int position, float percent, int arg2) {  
  100.             // TODO Auto-generated method stub  
  101.             LinearLayout.LayoutParams ll  =  
  102.                     (android.widget.LinearLayout.LayoutParams)tvCursor  
  103.                     .getLayoutParams();  
  104.             if(currIndex==position){  
  105.                 ll.leftMargin=(int)(currIndex*tvCursor.getWidth()+percent  
  106.                         *tvCursor.getWidth());  
  107.             }else if(currIndex>position){  
  108.                 ll.leftMargin=(int)(currIndex*tvCursor.getWidth()-(1-percent)  
  109.                         *tvCursor.getWidth());  
  110.             }  
  111.             tvCursor.setLayoutParams(ll);  
  112.               
  113.               
  114.         }  
  115.           
  116.         @Override  
  117.         public void onPageScrollStateChanged(int position) {  
  118.             // TODO Auto-generated method stub  
  119.               
  120.         }  
  121.     });  
  122. }  
  123.     @Override  
  124.     public boolean onCreateOptionsMenu(Menu menu) {  
  125.         // Inflate the menu; this adds items to the action bar if it is present.  
  126.         getMenuInflater().inflate(R.menu.health, menu);  
  127.         return true;  
  128.     }  
  129.   
  130. }  

HealthWebView

[java] view plain copy
print?
  1. package com.example.walkersimulate;  
  2.   
  3. import android.content.Context;  
  4. import android.view.LayoutInflater;  
  5. import android.view.View;  
  6. import android.webkit.WebView;  
  7. import android.webkit.WebViewClient;  
  8.   
  9. public class HealthWebView {  
  10. private Context context;  
  11. public HealthWebView(Context context){  
  12.     this.context=context;  
  13. }  
  14. public View getView(String url){  
  15.     View view=LayoutInflater.from(context).inflate(R.layout.pagerofhealth, null);  
  16.     WebView webView=(WebView)view.findViewById(R.id.wvHealth);  
  17.     webView.loadUrl(url);  
  18.     //设置支持JavaScript脚本  
  19.     webView.getSettings().setJavaScriptEnabled(true);  
  20.     /** 
  21.      * 禁止系统浏览器打开页面 
  22.      */  
  23.     webView.setWebViewClient(new WebViewClient(){  
  24.         public boolean shouldOverrideUrlLoading(WebView view,String url){  
  25.             view.loadUrl(url);  
  26.             return true;  
  27.         }  
  28.           
  29.     });  
  30.           
  31.     return view;  
  32. }  
  33. }  

HealthViewPagerAdapter

[html] view plain copy
print?
  1. package com.example.walkersimulate;  
  2.   
  3. import java.util.List;  
  4.   
  5. import android.support.v4.view.PagerAdapter;  
  6. import android.view.View;  
  7. import android.view.ViewGroup;  
  8.   
  9. public class HealthViewPagerAdapter extends PagerAdapter {  
  10. private List<View>viewList;  
  11. public HealthViewPagerAdapter(List<View>viewList){  
  12.     this.viewList=viewList;  
  13. }  
  14. public int getCount(){  
  15.     return viewList.size();  
  16. }  
  17. public boolean isViewFromObject(View view,Object object){  
  18.     return view==object;  
  19. }  
  20. public Object instantiateItem(ViewGroup container,int position){  
  21.     container.addView(viewList.get(position));  
  22.     return viewList.get(position);  
  23. }  
  24. public void destroyItem(ViewGroup container,int position,Object object){  
  25.     container.removeView( viewList.get(position));  
  26. }  
  27. }  


activity_health

[html] view plain copy
print?
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.    android:orientation="vertical"  
  6.     tools:context=".HealthActivity" >  
  7. <include  layout="@layout/health_layout_titlebar"/>  
  8. <LinearLayout  
  9.     android:layout_width="match_parent"  
  10.     android:layout_height="wrap_content">  
  11.     <!-- 健康新知 -->"  
  12.     <TextView  
  13.         android:id="@+id/tv_healthnews"  
  14.         android:layout_width="wrap_content"  
  15.         android:layout_height="wrap_content"  
  16.         android:layout_gravity="center"  
  17.         android:layout_weight="1"  
  18.         android:gravity="center"  
  19.         android:padding="6dp"  
  20.         android:text="健康新知"  
  21.         android:textSize="18sp" />  
  22. <!-- 疾病防治-->  
  23. <TextView   
  24.     android:id="@+id/tv_healthill"  
  25.     android:layout_width="wrap_content"  
  26.     android:layout_height="wrap_content"  
  27.     android:layout_gravity="center"  
  28.     android:layout_weight="1"  
  29.     android:gravity="center"  
  30.     android:padding="6dp"  
  31.     android:text="疾病防治"  
  32.     android:textSize="18sp"   
  33.     />  
  34. </LinearLayout>  
  35. <TextView  
  36.     android:id="@+id/cursor"  
  37.     android:layout_width="125dp"  
  38.     android:layout_height="5dp"  
  39.     android:layout_marginLeft="20dp"  
  40.     android:background="#990033"  
  41.     />  
  42. <android.support.v4.view.ViewPager  
  43.     android:id="@+id/viewpager"  
  44.     android:layout_width="match_parent"  
  45.     android:layout_height="match_parent"/>  
  46. </LinearLayout>  
0 0