android真实项目教程(三)——首页初点缀_by_CJJ

大家晚上好,CJJ不好,前天打球,把右手弄脱臼了。。。搞得我现在只能一只手敲代码。。。那效率,我给自己跪了 。。。写了好久,才写了那么一丁点。。。明明还有好多要说的。。。也只能等手好了再继续吧。。。呵呵,希望有看教程的网友谅解。。。

看过教程   android真实项目教程(二)——漫画App初构_by_CJJ      http://www.apkbus.com/forum.php?mod=viewthread&tid=166262   的朋友一定知道里面有四个子Fragment,今天我们就在其中的HomeFragment(首页)中写写东西。。。我只是依据个人的爱好去设计界面。。。如果您看的很不合理。。。留言和我说说。。。。一定洗耳恭听。。。。。。
                 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.os.Bundle;
  5. import android.support.v4.app.Fragment;
  6. import android.support.v4.view.ViewPager;
  7. import android.util.Log;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.ImageView;
  12. import android.widget.LinearLayout;
  13. import android.widget.TextView;

  14. import com.cjj.shopapp.activity.R;
  15. import com.cjj.shopapp.adapter.ViewPagerAdvAdapter;

  16. public class HomeFragment extends Fragment {
  17.         private ViewPager vp_ad;
  18.         private ImageView[] mImageViews;
  19.         private int currentPosition = 0;
  20.         private TextView tv_title;

  21.         @Override
  22.         public void onActivityCreated(Bundle savedInstanceState) {
  23.                 // 获得服务端广告图片,这里我们就简单的直接取本地数据
  24.                 getAdData();

  25.                 super.onActivityCreated(savedInstanceState);
  26.         }

  27.         private void getAdData() {
  28.                 List<Integer> list = new ArrayList<Integer>();

  29.                 list.add(R.drawable.huoying);
  30.                 list.add(R.drawable.caomao);
  31.                 list.add(R.drawable.yinhun);
  32.                 list.add(R.drawable.diguang);
  33.                 list.add(R.drawable.jianxin);

  34.                 vp_ad.setAdapter(new ViewPagerAdvAdapter(getActivity(), list));
  35.                 vp_ad.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){
  36.                         @Override
  37.                         public void onPageSelected(int position) {
  38.                                 super.onPageSelected(position);
  39.                                 setCurPoint(position);
  40.                         }
  41.                 });

  42.         }
  43.         
  44.         private void setCurPoint(int index){
  45.                 if(index<0||index>mImageViews.length||index==currentPosition){
  46.                         return;
  47.                 }
  48.                 mImageViews[currentPosition].setEnabled(true);
  49.                 mImageViews[index].setEnabled(false);
  50.                 //set tv title
  51.                 switch(index){
  52.                 case 0:
  53.                         tv_title.setText("火影忍者");
  54.                         break;
  55.                 case 1:
  56.                         tv_title.setText("海贼王");
  57.                         break;
  58.                 case 2:
  59.                         tv_title.setText("银魂");
  60.                         break;
  61.                 case 3:
  62.                         tv_title.setText("黑子的篮球");
  63.                         break;
  64.                 case 4:
  65.                         tv_title.setText("浪客剑心");
  66.                         break;
  67.                 }
  68.                 currentPosition = index;
  69.         }

  70.         @Override
  71.         public void onCreate(Bundle savedInstanceState) {
  72.                 super.onCreate(savedInstanceState);
  73.         }

  74.         @Override
  75.         public View onCreateView(LayoutInflater inflater, ViewGroup container,
  76.                         Bundle savedInstanceState) {
  77.                 return inflater.inflate(R.layout.fragment_home, null);
  78.         }

  79.         @Override
  80.         public void onDestroyView() {
  81.                 super.onDestroyView();
  82.         }

  83.         @Override
  84.         public void onViewCreated(View view, Bundle savedInstanceState) {
  85.                 super.onViewCreated(view, savedInstanceState);
  86.                 vp_ad = (ViewPager) view.findViewById(R.id.vp_ad);
  87.                 tv_title = (TextView) view.findViewById(R.id.tv_title);
  88.                 createPoint(view);
  89.         }

  90.         private void createPoint(View view) {
  91.                 // six index round point
  92.                 LinearLayout ll = (LinearLayout) view.findViewById(R.id.llayout);
  93.                 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
  94.                                 LinearLayout.LayoutParams.WRAP_CONTENT,
  95.                                 LinearLayout.LayoutParams.WRAP_CONTENT);
  96.                 lp.setMargins(0, 0, 12, 0);
  97.                 mImageViews = new ImageView[5];
  98.                 for (int i = 0; i < mImageViews.length; i++) {
  99.                         mImageViews[i] = new ImageView(getActivity());
  100.                         mImageViews[i].setImageResource(R.drawable.guide_round);
  101.                         mImageViews[i].setEnabled(true);
  102.                         mImageViews[i].setLayoutParams(lp);
  103.                         ll.addView(mImageViews[i]);
  104.                 }
  105.                 mImageViews[currentPosition].setEnabled(false);

  106.         }
  107. }
复制代码
所对应的 fragment_hom.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="wrap_content" >

  5.     <LinearLayout
  6.         android:layout_width="match_parent"
  7.         android:layout_height="match_parent"
  8.         android:background="@color/white"
  9.         android:orientation="vertical" >

  10.         <FrameLayout
  11.             android:layout_width="match_parent"
  12.             android:layout_height="wrap_content"
  13.             android:layout_marginLeft="10dp"
  14.             android:layout_marginRight="10dp"
  15.             android:layout_marginTop="4dp" >

  16.             <android.support.v4.view.ViewPager
  17.                 android:id="@+id/vp_ad"
  18.                 android:layout_width="match_parent"
  19.                 android:layout_height="180dp" />

  20.             <LinearLayout
  21.                 android:layout_width="match_parent"
  22.                 android:layout_height="30dp"
  23.                 android:layout_gravity="bottom"
  24.                 android:background="#6000"
  25.                 android:gravity="center_vertical" >

  26.                 <TextView
  27.                     android:id="@+id/tv_title"
  28.                     android:layout_width="wrap_content"
  29.                     android:layout_height="wrap_content"
  30.                     android:layout_weight="1"
  31.                     android:layout_marginLeft="2dp"
  32.                     android:text="火影忍者" />

  33.                 <LinearLayout
  34.                     android:id="@+id/llayout"
  35.                     android:layout_width="wrap_content"
  36.                     android:layout_height="wrap_content"
  37.                     android:layout_gravity="right|bottom"
  38.                     android:layout_marginBottom="2dp"
  39.                     android:orientation="horizontal" >
  40.                 </LinearLayout>
  41.             </LinearLayout>
  42.         </FrameLayout>

  43.         <GridView
  44.             android:id="@+id/gv_category"
  45.             android:layout_width="match_parent"
  46.             android:layout_height="wrap_content"
  47.             android:layout_marginLeft="10dp"
  48.             android:layout_marginRight="10dp"
  49.             android:background="@color/white"
  50.             android:cacheColorHint="@android:color/transparent"
  51.             android:fadingEdge="none"
  52.             android:gravity="center"
  53.             android:horizontalSpacing="7dp"
  54.             android:numColumns="4"
  55.             android:paddingBottom="10dip"
  56.             android:paddingLeft="15dp"
  57.             android:paddingTop="20dip"
  58.             android:scrollbarStyle="outsideInset"
  59.             android:verticalSpacing="20dip" />

  60.         <TextView
  61.             android:layout_width="match_parent"
  62.             android:layout_height="wrap_content"
  63.             android:layout_marginLeft="10dp"
  64.             android:layout_marginRight="10dp"
  65.             android:background="@color/home_group_item_e4"
  66.             android:gravity="center_vertical"
  67.             android:paddingBottom="5dp"
  68.             android:paddingLeft="10dp"
  69.             android:paddingTop="5dp"
  70.             android:text="漫画推荐"
  71.             android:textColor="@color/home_group_item_txt_67"
  72.             android:textSize="14sp" />

  73.         <GridView
  74.             android:id="@+id/gv_category"
  75.             android:layout_width="match_parent"
  76.             android:layout_height="wrap_content"
  77.             android:layout_marginLeft="10dp"
  78.             android:layout_marginRight="10dp"
  79.             android:background="@color/white"
  80.             android:cacheColorHint="@android:color/transparent"
  81.             android:fadingEdge="none"
  82.             android:gravity="center"
  83.             android:horizontalSpacing="7dp"
  84.             android:numColumns="4"
  85.             android:paddingBottom="10dip"
  86.             android:paddingLeft="15dp"
  87.             android:paddingTop="20dip"
  88.             android:scrollbarStyle="outsideInset"
  89.             android:verticalSpacing="20dip" />
  90.     </LinearLayout>

  91. </ScrollView>
复制代码
适配器:
  1. package com.cjj.shopapp.adapter;

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

  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.support.v4.view.PagerAdapter;
  8. import android.support.v4.view.ViewPager;
  9. import android.view.View;
  10. import android.view.View.OnClickListener;
  11. import android.widget.ImageView;

  12. /**
  13. * 首页商家广告适配器
  14. *
  15. */
  16. public class ViewPagerAdvAdapter extends PagerAdapter implements OnClickListener{
  17.         
  18.         private List<Integer> mDatas;
  19.         private List<ImageView> mViews;
  20.         private ImageView mImageView;
  21.         private Context mContext;
  22.         private Bundle mBundle;
  23.         private Intent mIntent;
  24.         
  25.         public ViewPagerAdvAdapter(Context mContext,List<Integer> mDatas)
  26.         {
  27.                 mIntent = new Intent();
  28.                 mBundle = new Bundle();
  29.                 this.mContext = mContext;
  30.                 mViews = new ArrayList<ImageView>();
  31.                 this.mDatas = mDatas;
  32.                 int length = mDatas == null ? 0 : mDatas.size();
  33.                 
  34.                 for(int i=0;i<length;i++)
  35.                 {
  36.                         ImageView mImageView = new ImageView(mContext);
  37.                         mViews.add(mImageView);
  38.                 }
  39.                 
  40.                 length = 0;
  41.         }

  42.         @Override
  43.         public int getCount() {
  44.                 
  45.                 return mDatas == null ? 0 : mDatas.size();
  46.         }

  47.         @Override
  48.         public boolean isViewFromObject(View arg0, Object arg1) {
  49.                 
  50.                 return arg0==(arg1);
  51.         }
  52.         
  53.         @Override
  54.         public Object instantiateItem(View container, int position) {
  55.                 
  56.                 int pos = mDatas.get(position);

  57.                 mImageView = mViews.get(position);
  58.                 
  59.                 mImageView.setAdjustViewBounds(true);
  60.                 mImageView.setScaleType(ImageView.ScaleType.FIT_XY);
  61.                 mImageView.setTag(pos);
  62.                 mImageView.setOnClickListener(this);
  63.                 
  64.                 mImageView.setImageResource(pos);
  65.                 ((ViewPager)container).addView(mImageView,0);
  66.                 
  67.                 return mImageView;
  68.         }
  69.         
  70.         @Override
  71.         public void destroyItem(View container, int position, Object object) {
  72.                 
  73.                 mImageView = mViews.get(position);
  74.                 ((ViewPager)container).removeView(mImageView);
  75.         }

  76.         @Override
  77.         public void onClick(View v) {
  78.                 
  79.         
  80.         }
  81. }
复制代码

      
      就写了这么多,手好了我继续写。。。呵呵。。。。吐槽下自己:别再荒芜时间了,别把自己玩坏了,自己让自己少操心吧。。。。好吧,,,我承认自己是个白痴啊。。。。。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值