码迷,mamicode.com
首页 > 微信 > 详细

通过Viewpager 来实现微信界面左右滑动。

时间:2015-11-20 19:51:07      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:

 1 package com.lixu.huadong;
 2 
 3 import java.util.ArrayList;
 4 
 5 import android.os.Bundle;
 6 import android.support.v4.app.Fragment;
 7 import android.support.v4.app.FragmentActivity;
 8 import android.support.v4.app.FragmentManager;
 9 import android.support.v4.app.FragmentPagerAdapter;
10 import android.support.v4.view.ViewPager;
11 import android.view.Window;
12 
13 public class MainActivity extends FragmentActivity {
14     private MyAdapter mMyAdapter = null;
15     private ArrayList<Fragment> list = null;
16 
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         // 去掉程序标题头
21         requestWindowFeature(Window.FEATURE_NO_TITLE);
22 
23         setContentView(R.layout.activity_main);
24 
25         list = new ArrayList<Fragment>();
26         list.add(new MyFragment1());
27         list.add(new MyFragment2());
28         list.add(new MyFragment3());
29         list.add(new MyFragment4());
30 
31         ViewPager vp = (ViewPager) findViewById(R.id.vp);
32         mMyAdapter = new MyAdapter(this.getSupportFragmentManager());
33         vp.setAdapter(mMyAdapter);
34 
35     }
36 
37     private class MyAdapter extends FragmentPagerAdapter {
38 
39         public MyAdapter(FragmentManager fm) {
40             super(fm);
41         }
42 
43         @Override
44         public Fragment getItem(int arg0) {
45             return list.get(arg0);
46         }
47 
48         @Override
49         public int getCount() {
50             return list.size();
51         }
52 
53     }
54 
55 }
 1 package com.lixu.huadong;
 2 
 3 import android.os.Bundle;
 4 import android.support.v4.app.Fragment;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.ImageView;
 9 
10 class MyFragment1 extends Fragment {
11 
12     @Override
13     public void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15     }
16 
17     // 创建view 也可以直接在这里面获取view中的控件。
18     @Override
19     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
20 
21         View view = inflater.inflate(R.layout.list, null);
22 
23         return view;
24     }
25 
26     // 创建view完毕 可以直接在onCreateView中获取view中控件。
27     @Override
28     public void onViewCreated(View view, Bundle savedInstanceState) {
29         super.onViewCreated(view, savedInstanceState);
30 
31         ImageView iv = (ImageView) view.findViewById(R.id.iv);
32         iv.setImageResource(R.drawable.weixinjiemian);
33     }
34 }
  1 package com.lixu.huadong;
  2 
  3 import java.util.ArrayList;
  4 import java.util.HashMap;
  5 
  6 import android.content.Context;
  7 import android.graphics.Color;
  8 import android.os.Bundle;
  9 import android.support.v4.app.Fragment;
 10 import android.view.LayoutInflater;
 11 import android.view.View;
 12 import android.view.ViewGroup;
 13 import android.widget.ArrayAdapter;
 14 import android.widget.ListView;
 15 import android.widget.TextView;
 16 
 17 class MyFragment2 extends Fragment {
 18     private static final String TYPE = "type";
 19     private static final String DATE = "date";
 20     private static final int GROUP = -1;
 21     private static final int ITEM = -2;
 22 
 23     private ArrayList<HashMap<String, Object>> item = null;
 24 
 25     @Override
 26     public void onCreate(Bundle savedInstanceState) {
 27         super.onCreate(savedInstanceState);
 28 
 29     }
 30 
 31     // 创建view
 32     @Override
 33     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
 34 
 35         View view = inflater.inflate(R.layout.list1, null);
 36 
 37         return view;
 38     }
 39 
 40     // 创建view完毕
 41     @Override
 42     public void onViewCreated(View view, Bundle savedInstanceState) {
 43         super.onViewCreated(view, savedInstanceState);
 44 
 45         ListView lv = (ListView) view.findViewById(R.id.lv);
 46         MyAdaper adapter = new MyAdaper(getActivity(), -1);
 47 
 48         item = new ArrayList<HashMap<String, Object>>();
 49 
 50         String[] groups = { "家人", "朋友", "同学", "同事" };
 51         String[] date = { "张三", "李四", "王五", "狗儿" };
 52         for (String str : groups) {
 53             HashMap<String, Object> group_map = new HashMap<String, Object>();
 54 
 55             group_map.put(TYPE, GROUP);
 56             group_map.put(DATE, str);
 57             item.add(group_map);
 58             for (String n : date) {
 59 
 60                 HashMap<String, Object> date_map = new HashMap<String, Object>();
 61 
 62                 date_map.put(TYPE, ITEM);
 63                 date_map.put(DATE, n);
 64                 item.add(date_map);
 65 
 66             }
 67 
 68         }
 69         lv.setAdapter(adapter);
 70     }
 71 
 72     private class MyAdaper extends ArrayAdapter {
 73         private LayoutInflater flater = null;
 74         private Context context;
 75 
 76         public MyAdaper(Context context, int resource) {
 77             super(context, resource);
 78             this.context = context;
 79             flater = LayoutInflater.from(context);
 80         }
 81 
 82         @Override
 83         public int getCount() {
 84             return item.size();
 85         }
 86 
 87         @Override
 88         public int getItemViewType(int position) {
 89             HashMap<String, Object> map = item.get(position);
 90             return (Integer) map.get(TYPE);
 91         }
 92 
 93         @Override
 94         public int getViewTypeCount() {
 95 
 96             return 2;
 97         }
 98 
 99         @Override
100         public View getView(int position, View convertView, ViewGroup parent) {
101             int type = getItemViewType(position);
102             // 根据不同的view type加载不同的布局文件。
103             switch (type) {
104             case GROUP:
105 
106                 convertView = flater.inflate(android.R.layout.simple_list_item_1, null);
107                 TextView tv1 = (TextView) convertView.findViewById(android.R.id.text1);
108                 tv1.setText(item.get(position).get(DATE) + "");
109                 tv1.setBackgroundColor(Color.RED);
110                 tv1.setTextSize(20);
111 
112                 break;
113             case ITEM:
114                 convertView = flater.inflate(android.R.layout.simple_list_item_1, null);
115                 TextView tv2 = (TextView) convertView.findViewById(android.R.id.text1);
116                 tv2.setText(item.get(position).get(DATE) + "");
117 
118                 break;
119 
120             default:
121                 break;
122             }
123 
124             return convertView;
125         }
126 
127     }
128 
129 }
 1 package com.lixu.huadong;
 2 
 3 import android.os.Bundle;
 4 import android.support.v4.app.Fragment;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.ImageView;
 9 
10 class MyFragment3 extends Fragment {
11 
12     @Override
13     public void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15     }
16 
17     // 创建view
18     @Override
19     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
20 
21         View view = inflater.inflate(R.layout.list, null);
22 
23         return view;
24     }
25 
26     // 创建view完毕
27     @Override
28     public void onViewCreated(View view, Bundle savedInstanceState) {
29         super.onViewCreated(view, savedInstanceState);
30 
31         ImageView iv = (ImageView) view.findViewById(R.id.iv);
32         iv.setImageResource(R.drawable.faxianjiemian);
33     }
34 }
 1 package com.lixu.huadong;
 2 
 3 import android.os.Bundle;
 4 import android.support.v4.app.Fragment;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.ImageView;
 9 
10 class MyFragment4 extends Fragment {
11 
12     @Override
13     public void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15     }
16 
17     // 创建view
18     @Override
19     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
20 
21         View view = inflater.inflate(R.layout.list, null);
22 
23         return view;
24     }
25 
26     // 创建view完毕
27     @Override
28     public void onViewCreated(View view, Bundle savedInstanceState) {
29         super.onViewCreated(view, savedInstanceState);
30 
31         ImageView iv = (ImageView) view.findViewById(R.id.iv);
32         iv.setImageResource(R.drawable.wojiemian);
33     }
34 }

xml文件:

 1 <RelativeLayout 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     tools:context="com.lixu.huadong.MainActivity" >
 6 
 7     <android.support.v4.view.ViewPager
 8         android:id="@+id/vp"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent"
11         />
12 
13 </RelativeLayout>
1 <?xml version="1.0" encoding="utf-8"?>
2 <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
3     android:id="@+id/iv"
4     android:layout_width="match_parent"
5     android:layout_height="match_parent" >
6 
7 </ImageView>
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <ListView
 8         android:id="@+id/lv"
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent" >
11     </ListView>
12 
13 </LinearLayout>

运行效果图:

技术分享

通过Viewpager 来实现微信界面左右滑动。

标签:

原文地址:http://www.cnblogs.com/labixiaoxin/p/4981765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!