Android项目:简易版QQ的实现
来源:互联网 发布:淘宝网装修材料价格表 编辑:程序博客网 时间:2024/05/16 08:08
简易版QQ实现涉及的三个功能模块
引导界面
- splash界面(静态)
1、作用:初始化服务器端的一些数据,初始化成功后跳转到主界面
2、页面的延迟跳转:
//在主线程中: new Handler().postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub Intent intent = new Intent(MyqqStartActivity.this,PagerActivity.class); startActivity(intent); MyqqStartActivity.this.finish(); } }, 3000);
- 滑动页面ViewPager
(页面滑动的最后一页是一个按钮,点击后有个动画效果,动画结束之后跳转到主界面)
1、容器控件
里面可以防止多个Layout,实现了滑动翻页;
实现的大致步骤为:
①、将所有现实的页面加载到一个集合中
②、又滑加载新页面
③、左滑删除旧页面
实现的代码为:
xml定义ViewPager
<android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" > </android.support.v4.view.ViewPager
主代码中的实现:
mViewPager = (ViewPager) findViewById(R.id.viewpager); LayoutInflater mLi = LayoutInflater.from(this); View view1 = mLi.inflate(R.layout.viewpager_activity_item1, null); View view2 = mLi.inflate(R.layout.viewpager_activity_item2, null); View view3 = mLi.inflate(R.layout.viewpager_activity_item3, null); final ArrayList<View> views = new ArrayList<View>(); views.add(view1); views.add(view2); views.add(view3); PagerAdapter mPagerAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; } @Override public int getCount() { // TODO Auto-generated method stub return views.size(); } @Override public void destroyItem(View container, int position, Object object) { // TODO Auto-generated method stub ((ViewPager) container).removeView(views.get(position)); } @Override public Object instantiateItem(View container, int position) { // TODO Auto-generated method stub ((ViewPager) container).addView(views.get(position)); return views.get(position); } }; mViewPager.setAdapter(mPagerAdapter); }
2、状态选择器
3. 动画效果
1、TwenedAnimations(API实现的)
①、Alpha:淡入淡出
②、Scale:缩放效果
③、Rotate:旋转效果
④、移动效果
2、FrameAnimations
把一个动画拆分成很多张图片;类似于连环画
3、创建动画效果的步骤
①、创建AnimationSet对象
②、根据需要创建相应的Animation对象(淡入淡出啊、这些)
③、创建的Animation对象设置参数
④、将Animation对象添加到AnimationSet中
⑤、使用控件对象开始执行Animation
4、例如设置移动的动画效果步骤:
AnimationSet anim = new AnimationSet(true); // 1、确定类型:Absolute相对于屏幕,Relative to self相对于自己,Relative to parent相对于父控件 // 2、确定x的起始位置 // 3、确定x的模式 // 4、确定x的结束动画位置 // 5、Y与X一样 TranslateAnimation mytranslateanim = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, -1f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f); // 设置动画持续的时间 mytranslateanim.setDuration(2000); // 确定动画开始的时间 anim.setStartOffset(800); // 添加动画到AnimationSet中 anim.addAnimation(mytranslateanim); //停留在最後的位置 anim.setFillAfter(true); mLeft.startAnimation(anim);
主界面
- 网络请求数据
1、tomcat服务器
2、异步请求数据(Handler与AsyTask异步任务的区别)
3、Json数据的解析
json数据存放在tomcat的目录下,用自定义的方式编写json数据,网上有在线解析恭喜,来校验自己的json数据有没有写对。
常用的第三方解析框架:Jackson、Gson、JSONObject - 选项卡界面(tabHost + Fragment)
TabHost可以简单理解成一个容器控件、每一个选项卡对应一个布局而已
1、popuwindow
2、自定义Adapter
3、页面圆角处理 - 侧滑控件的实现
1、自定义ViewGroup
①、实现两个参数的构造方法
②、重写onMeasure方法测量控件高度
③、重写onLayout方法定义控件布局
④、重写onTouchEvent事件监听
实时通讯
- 即时通讯原理
①、XMPP
②、openFire
③、Socket - 第三方SDK的使用
环信即时通信Demo
0 0
- Android项目:简易版QQ的实现
- iOS版QQ的黏性下拉刷新效果简易实现
- 第一个Android项目--简易计算器的设计与实现
- [项目]简易安全卫士的实现
- Android实战简易教程<十四>(介绍SwipeMenuListView-简单实现类似QQ的滑动删除效果)
- 一个简易的QQ自动消息机的实现
- 简易 的QQ APP登录以及注册页面的实现
- Java实现简易QQ聊天
- C# 实现简易QQ界面
- 简易版qq-----
- iOS 简易的实现类似QQ好友菜单
- 简易实现项目的频道管理(防)
- 简易实现项目的频道管理
- Struts2的基本项目实现、简易使用方法
- Android实战简易教程-第十四枪(介绍SwipeMenuListView-简单实现类似QQ的滑动删除效果)
- Android实战简易教程-第三十八枪(模仿腾讯QQ的网络状态提示和设置功能实现)
- Android实战简易教程<三十八>(模仿腾讯QQ的网络状态提示和设置功能实现)
- 一个简易的Android基础项目
- sigaction,SA_RESTART
- android 获取控件高度
- Linux设置默认启动命令行,而不是图形界面
- Linux diff与patch的深入分析
- android socket 通信
- Android项目:简易版QQ的实现
- 并行计算
- 在Ubuntu 14.04 64bit上搭建单机本地节点Spark 1.3.0环境
- android 里listview和ScrollView的冲突问题
- python中文字符
- matlab中的括号
- 批量卸载apk
- 测试管理工具
- 九度王道考研机试真题 2012-北大Jungle Roads 并查集 最小生成树