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

来源:互联网 发布:SQL2010怎么创建数据库 编辑:程序博客网 时间:2024/06/11 01:03
大家下午好。。。如果在学校,到时间吃晚饭了。。。。隔了好久才重新敲代码。。。又落后那么多了 ,要更加努力学习了。。。。今天下午写了下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.                 
  61.                 gv_category.setSelector(new ColorDrawable(Color.TRANSPARENT));
  62.                 gv_category.setAdapter(new CategoryAdapter(getActivity(), ShopAppApplication.mDatas));

  63.         }

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

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

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

  82.         }

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

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

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

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

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

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

  147.         }
  148. }
复制代码
  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.                 
  42.                 
  43.                 for (int i = 0; i < data.size(); i++) {
  44.                         View view = getActivity().getLayoutInflater().inflate(
  45.                                         R.layout.item_carousel_view, null);
  46.                         
  47.                         ImageView icon = (ImageView) view.findViewById(R.id.itemsIcon);
  48.                         icon.setImageResource(data.get(i).getIcon());
  49.                         TextView msg = (TextView) view.findViewById(R.id.itemsText);
  50.                         msg.setText(data.get(i).getMsg());
  51.                         mViews.add(view);
  52.                 }

  53.                 CarouselViewAdapter adapter = new CarouselViewAdapter(getActivity(),
  54.                                 mViews, false);
  55.                 carousel.setOnItemClickListener(this);
  56.                 carousel.setOnItemSelectedListener(this);
  57.                 carousel.setAdapter(adapter);
  58.         }

  59.         @Override
  60.         public void onCreate(Bundle savedInstanceState) {
  61.                 super.onCreate(savedInstanceState);
  62.         }

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

  70.         @Override
  71.         public void onDestroyView() {
  72.                 super.onDestroyView();
  73.         }

  74.         @Override
  75.         public void onViewCreated(View view, Bundle savedInstanceState) {
  76.                 carousel = (CarouselView) view.findViewById(R.id.carousel);
  77.                 super.onViewCreated(view, savedInstanceState);

  78.         }

  79.         

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

  85.         @Override
  86.         public void onNothingSelected(CarouselAdapter<?> parent) {
  87.                 
  88.         }

  89.         @Override
  90.         public void onItemClick(CarouselAdapter<?> parent, View view, int position,
  91.                         long id) {
  92.                 Toast.makeText(getActivity(), " onclick position="+position, 1000).show();
  93.         }
  94. }
复制代码

       还是那句话,还是看源码吧。。写的可能不是那么合理,如果你有什么建议,可以留言告诉我的 ,我也希望能进步。。。
呵呵 !!!!
0 0
原创粉丝点击