大家下午好。。。如果在学校,到时间吃晚饭了。。。。隔了好久才重新敲代码。。。又落后那么多了,要更加努力学习了。。。。今天下午写了下app的第四部分。。。 这里给下之前三部分的地址,因为如果第一次看,,,可能会莫名其妙。。。可能把,,,或许是我想多了:
android真实项目教程(一)——App应用框架搭建_by_CJJ http://www.apkbus.com/forum.php?mod=viewthread&tid=166151
android真实项目教程(二)——漫画App初构_by_CJJ http://www.apkbus.com/forum.php?mod=viewthread&tid=166262
android真实项目教程(三)——首页初点缀_by_CJJ http://www.apkbus.com/forum.php?mod=viewthread&tid=166630

android真实项目教程(四)——MY APP MY STYLE_by_CJJ http://www.apkbus.com/forum.php?mod=viewthread&tid=167676
android真实项目教程(五)——有时三点两点雨_by_CJJ
http://www.apkbus.com/forum.php?mod=viewthread&tid=168422


第四部分完成了首页的界面设计及分类加入旋转木马作为选择分类的选项,看下效果图把:





主要代码:
  1. package com.cjj.shopapp.fragment;

  2. import java.util.ArrayList;
  3. import java.util.List;

  4. import android.graphics.Color;
  5. import android.graphics.drawable.ColorDrawable;
  6. import android.os.Bundle;
  7. import android.support.v4.app.Fragment;
  8. import android.support.v4.view.ViewPager;
  9. import android.util.Log;
  10. import android.view.LayoutInflater;
  11. import android.view.View;
  12. import android.view.ViewGroup;
  13. import android.widget.GridView;
  14. import android.widget.ImageView;
  15. import android.widget.LinearLayout;
  16. import android.widget.TextView;

  17. import com.cjj.shopapp.activity.R;
  18. import com.cjj.shopapp.adapter.CategoryAdapter;
  19. import com.cjj.shopapp.adapter.RecommendAdapter;
  20. import com.cjj.shopapp.adapter.ViewPagerAdvAdapter;
  21. import com.cjj.shopapp.models.CategoryInfo;
  22. import com.cjj.shopapp.models.ShopAppApplication;
  23. import com.cjj.shopapp.constants.Constants;;

  24. public class HomeFragment extends Fragment {
  25. private ViewPager vp_ad;
  26. private ImageView[] mImageViews;
  27. private int currentPosition = 0;
  28. private TextView tv_title;
  29. private GridView gv_category, gv_recommend;

  30. private List<CategoryInfo> mList = new ArrayList<CategoryInfo>();

  31. int[] recommend_icon = new int[] { R.drawable.huoying_bg,
  32. R.drawable.haizie_bg, R.drawable.heizi, R.drawable.sishen_bg };
  33. String[] recommend_msg = new String[] { "火影忍者", "海贼王", "黑子的篮球", "死神" };

  34. @Override
  35. public void onActivityCreated(Bundle savedInstanceState) {
  36. // 获得服务端广告图片,这里我们就简单的直接取本地数据
  37. getAdData();
  38. getCategoryData();
  39. getRecommendData();
  40. super.onActivityCreated(savedInstanceState);
  41. }

  42. /**
  43. * 获取gridView推荐漫画的数据
  44. */
  45. private void getRecommendData() {
  46. List<CategoryInfo> list2 = new ArrayList<CategoryInfo>();
  47. for (int i = 0; i < recommend_icon.length; i++) {
  48. CategoryInfo categoryInfo = new CategoryInfo();
  49. categoryInfo.setIcon(recommend_icon[i]);
  50. categoryInfo.setMsg(recommend_msg[i]);
  51. list2.add(categoryInfo);
  52. }
  53. gv_recommend.setSelector(new ColorDrawable(Color.TRANSPARENT));
  54. gv_recommend.setAdapter(new RecommendAdapter(getActivity(), list2));
  55. }

  56. /**
  57. * 获得gridView分类数据
  58. */
  59. private void getCategoryData() {

  60. gv_category.setSelector(new ColorDrawable(Color.TRANSPARENT));
  61. gv_category.setAdapter(new CategoryAdapter(getActivity(), ShopAppApplication.mDatas));

  62. }

  63. /**
  64. * 获得广告数据
  65. */
  66. private void getAdData() {
  67. List<Integer> list = new ArrayList<Integer>();

  68. list.add(R.drawable.huoying);
  69. list.add(R.drawable.caomao);
  70. list.add(R.drawable.yinhun);
  71. list.add(R.drawable.diguang);
  72. list.add(R.drawable.jianxin);

  73. vp_ad.setAdapter(new ViewPagerAdvAdapter(getActivity(), list));
  74. vp_ad.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
  75. @Override
  76. public void onPageSelected(int position) {
  77. super.onPageSelected(position);
  78. setCurPoint(position);
  79. }
  80. });

  81. }

  82. private void setCurPoint(int index) {
  83. if (index < 0 || index > mImageViews.length || index == currentPosition) {
  84. return;
  85. }
  86. mImageViews[currentPosition].setEnabled(true);
  87. mImageViews[index].setEnabled(false);
  88. // set tv title
  89. switch (index) {
  90. case 0:
  91. tv_title.setText("火影忍者");
  92. break;
  93. case 1:
  94. tv_title.setText("海贼王");
  95. break;
  96. case 2:
  97. tv_title.setText("银魂");
  98. break;
  99. case 3:
  100. tv_title.setText("黑子的篮球");
  101. break;
  102. case 4:
  103. tv_title.setText("浪客剑心");
  104. break;
  105. }
  106. currentPosition = index;
  107. }

  108. @Override
  109. public void onCreate(Bundle savedInstanceState) {
  110. super.onCreate(savedInstanceState);
  111. }

  112. @Override
  113. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  114. Bundle savedInstanceState) {
  115. return inflater.inflate(R.layout.fragment_home, null);
  116. }

  117. @Override
  118. public void onDestroyView() {
  119. super.onDestroyView();
  120. }

  121. @Override
  122. public void onViewCreated(View view, Bundle savedInstanceState) {
  123. super.onViewCreated(view, savedInstanceState);
  124. vp_ad = (ViewPager) view.findViewById(R.id.vp_ad);
  125. tv_title = (TextView) view.findViewById(R.id.tv_title);
  126. gv_category = (GridView) view.findViewById(R.id.gv_category);
  127. gv_recommend = (GridView) view.findViewById(R.id.gv_recommend);
  128. createPoint(view);
  129. }

  130. private void createPoint(View view) {
  131. // six index round point
  132. LinearLayout ll = (LinearLayout) view.findViewById(R.id.llayout);
  133. LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
  134. LinearLayout.LayoutParams.WRAP_CONTENT,
  135. LinearLayout.LayoutParams.WRAP_CONTENT);
  136. lp.setMargins(0, 0, 12, 0);
  137. mImageViews = new ImageView[5];
  138. for (int i = 0; i < mImageViews.length; i++) {
  139. mImageViews[i] = new ImageView(getActivity());
  140. mImageViews[i].setImageResource(R.drawable.guide_round);
  141. mImageViews[i].setEnabled(true);
  142. mImageViews[i].setLayoutParams(lp);
  143. ll.addView(mImageViews[i]);
  144. }
  145. mImageViews[currentPosition].setEnabled(false);

  146. }
  147. }
复制代码
  1. package com.cjj.shopapp.fragment;

  2. import java.util.ArrayList;
  3. import java.util.List;

  4. import com.ab.view.carousel.CarouselAdapter;
  5. import com.ab.view.carousel.CarouselView;
  6. import com.ab.view.carousel.CarouselViewAdapter;
  7. import com.ab.view.carousel.CarouselAdapter.OnItemClickListener;
  8. import com.ab.view.carousel.CarouselAdapter.OnItemSelectedListener;
  9. import com.cjj.shopapp.activity.R;
  10. import com.cjj.shopapp.constants.Constants;
  11. import com.cjj.shopapp.models.CategoryInfo;
  12. import com.cjj.shopapp.models.ShopAppApplication;

  13. import android.os.Bundle;
  14. import android.support.v4.app.Fragment;
  15. import android.util.Log;
  16. import android.view.Gravity;
  17. import android.view.LayoutInflater;
  18. import android.view.View;
  19. import android.view.ViewGroup;
  20. import android.view.ViewGroup.LayoutParams;
  21. import android.widget.ImageView;
  22. import android.widget.TextView;
  23. import android.widget.Toast;

  24. public class CategoryFragment extends Fragment implements OnItemClickListener,OnItemSelectedListener{
  25. private CarouselView carousel;

  26. @Override
  27. public void onActivityCreated(Bundle savedInstanceState) {

  28. getCategoryData();

  29. super.onActivityCreated(savedInstanceState);
  30. }

  31. private void getCategoryData() {
  32. // 不支持的动态添加adapter.notifyDataSetChanged()增强滑动的流畅
  33. List<View> mViews = new ArrayList<View>();
  34. List<CategoryInfo> data = new ArrayList<CategoryInfo>();
  35. for (int i = 0; i < Constants.category_msg.length; i++) {
  36. CategoryInfo categoryInfo2 = new CategoryInfo();
  37. categoryInfo2.setIcon(Constants.category_icon[i]);
  38. categoryInfo2.setMsg(Constants.category_msg[i]);
  39. data.add(categoryInfo2);
  40. }


  41. for (int i = 0; i < data.size(); i++) {
  42. View view = getActivity().getLayoutInflater().inflate(
  43. R.layout.item_carousel_view, null);

  44. ImageView icon = (ImageView) view.findViewById(R.id.itemsIcon);
  45. icon.setImageResource(data.get(i).getIcon());
  46. TextView msg = (TextView) view.findViewById(R.id.itemsText);
  47. msg.setText(data.get(i).getMsg());
  48. mViews.add(view);
  49. }

  50. CarouselViewAdapter adapter = new CarouselViewAdapter(getActivity(),
  51. mViews, false);
  52. carousel.setOnItemClickListener(this);
  53. carousel.setOnItemSelectedListener(this);
  54. carousel.setAdapter(adapter);
  55. }

  56. @Override
  57. public void onCreate(Bundle savedInstanceState) {
  58. super.onCreate(savedInstanceState);
  59. }

  60. @Override
  61. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  62. Bundle savedInstanceState) {
  63. View v = inflater.from(getActivity()).inflate(
  64. R.layout.fragment_category, null);
  65. return v;
  66. }

  67. @Override
  68. public void onDestroyView() {
  69. super.onDestroyView();
  70. }

  71. @Override
  72. public void onViewCreated(View view, Bundle savedInstanceState) {
  73. carousel = (CarouselView) view.findViewById(R.id.carousel);
  74. super.onViewCreated(view, savedInstanceState);

  75. }



  76. @Override
  77. public void onItemSelected(CarouselAdapter<?> parent, View view,
  78. int position, long id) {
  79. Toast.makeText(getActivity(), " slect position="+position, 1000).show();
  80. }

  81. @Override
  82. public void onNothingSelected(CarouselAdapter<?> parent) {

  83. }

  84. @Override
  85. public void onItemClick(CarouselAdapter<?> parent, View view, int position,
  86. long id) {
  87. Toast.makeText(getActivity(), " onclick position="+position, 1000).show();
  88. }
  89. }
复制代码
还是那句话,还是看源码吧。。写的可能不是那么合理,如果你有什么建议,可以留言告诉我的 ,我也希望能进步。。。
呵呵 !!!!

更多相关文章

  1. 折磨死我的conversion to dalvik format failed with error 1 竟
  2. Android中LocationManager的简单使用01
  3. Android更改Activity样式和隐藏标题
  4. 学习Android闹钟源代码(一)-代码准备
  5. Android(安卓)AIDL
  6. 自定义Android注解Part3:绑定
  7. android 项目练习:自己的词典app——生词本(二)
  8. Activity之间的相互调用与传递参数
  9. 调用Android其它Context的Activity

随机推荐

  1. Android中GPS简介及其应用
  2. Android ListView项收缩效果
  3. Android Activity 禁止或屏蔽横竖屏切换
  4. Android改变状态栏颜色真麻烦
  5. Android PullToRefresh 分析之五、扩展刷
  6. android 让ImageView的图片全屏填充
  7. Android(安卓)调用相册 拍照 实现系统控
  8. ListActivity的使用
  9. Git操作常用概念和命令
  10. Android(安卓)关于判断应用是否有网络