android真实项目教程(四)——MY APP MY STYLE_by_CJJ

大家下午好。。。如果在学校,到时间吃晚饭了。。。。隔了好久才重新敲代码。。。又落后那么多了,要更加努力学习了。。。。今天下午写了下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. }
复制代码

还是那句话,还是看源码吧。。写的可能不是那么合理,如果你有什么建议,可以留言告诉我的 ,我也希望能进步。。。
呵呵 !!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值