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

 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>

运行效果图:

时间: 2024-10-29 19:08:29

通过Viewpager 来实现微信界面左右滑动。的相关文章

Android控件-Fragment+ViewPager(高仿微信界面)

什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Activity中,我们可以合并多个Fragment在一个单独的activity中建立多个UI面板,或者重用Fragment在多个activity中. 关于Fragment的生命周期,由于Fragment需要依赖Activity,也就是说当一个Activity的生命周期结束之后,那么Fragment

安卓开发复习笔记——Fragment+ViewPager组件(高仿微信界面)

什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再重复. 什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Activity中,我们可以合并多个Fragment在一个单独的activity中建立多个UI面板,或

转-Fragment+ViewPager组件(高仿微信界面)

http://www.cnblogs.com/lichenwei/p/3982302.html 什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再重复. 什么是Fragment? Fragment是Android3.0后新增的概念,Fragment名为碎片,不过却和Activity十分相似,具有自己的生命周期,它是用来描述一些行为或一部分用户界面在一个Act

Android ActionBar仿微信界面

ActionBar仿微信界面 1.学习了别人的两篇关于ActionBar博客,在结合别人的文章来仿造一下微信的界面: 思路如下:1).利用ActionBar生成界面的头部,在用ActionBar的ActionProvider时候要注意引入的包一定是android.view.ActionProvider,不能是android.support.v4.view.ActionProvider 2),切换的Title可以参考之前之前一篇文章利用RadioGroup来做,这里是利用一个开源的项目PagerS

安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)

关于底部菜单是什么,我想没必要介绍了,在市场上的APP里太常见了,这里提供两种方式来实现. 记得之前写过几篇关于底部菜单实现的方法,有兴趣的朋友可以看看: 1.<安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航)> 2.<安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航)> 3.<安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)> 今天带来种相对更通俗易懂的写法,不再和过去一样去沿用TabHost了

Android微信界面的设计

Android微信界面的设计 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51777792 微信6.0主界面: (1)整体采用垂直的LinearLayout线性布局 (2)最上面是ActionBar,搜索框SearchView,Overflow(含有4个单选菜单项) (3)中间使用ViewPager+Fragment组件,这样可实现左右滑动的界面. (4)最下面是水平的LinearLayout线性布局:含有4个自定义

Android 利用ViewPager实现底部圆点导航左右滑动效果以及Fragment页面切换

上一篇博文我们介绍了利用ViewPager和Fragment实现顶部滑块左右滑动效果,具体参考(http://blog.csdn.net/a123demi/article/details/39480385). 而本篇博文将实例讲解利用ViewPager实现底部圆点导航左右滑动效果,以及被滑动界面实现监听事件,同时通过Fragment实现页面的切换. 对于该效果的实现,需要实现以下几个问题: 1. 底部圆点加载和实现方法? 2. 怎样实现左右滑动效果? 3. 被滑动页面,怎样实现监听事件? 4.

高仿微信对话列表滑动删除效果(转)

前言 用过微信的都知道,微信对话列表滑动删除效果是很不错的,这个效果我们也可以有.思路其实很简单,弄个ListView,然后里面的每个item做成一个可以滑动的自定义控件即可.由于ListView是上下滑动而item是左右滑动,因此会有滑动冲突,也许你需要了解下android中点击事件的派发流程,请参考Android源码分析-点击事件派发机制.我的解决思路是这样的:重写ListView的onInterceptTouchEvent方法,在move的时候做判断,如果是左右滑动就返回false,否则返

Fragment的微信界面源代码

完成上述的网页,并且能够左右切换 注: 一下的带代码只能够在Android的3.0以上的版本中使用. 这是java文件的源代码 /* *作者浅淡~夏天 *Time:2014/12/14 *微信界面 */ package com.android.xiong.fragmentnavigation2; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import