package com.example.epcrm.fragment;
import java.util.LinkedList;
import java.util.List;
import com.example.epcrm.R;
import com.example.epcrm.activity.SplashActivity;
import com.example.epcrm.models.tb_product;
import com.example.epcrm.util.Utils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import com.nineoldandroids.animation.ObjectAnimator;
import android.R.integer;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.LinearLayout.LayoutParams;
import com.handmark.pulltorefresh.library.*;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
public class Fragment_Home extends Fragment {
private View view;
@ViewInject(R.id.viewpager_home_banner)
private ViewPager mPager;
private int[] mBanner = new int[] { R.drawable.img_home_banner1,
R.drawable.img_home_banner2, R.drawable.img_home_banner3,
R.drawable.img_home_banner4 };
private ImageView mImgCover;
private int mLastPos;// 记录上一次ViewPager的位置
private ImageView mImageView;
private boolean isDragging;// 是否被拖拽
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
view = inflater.inflate(R.layout.fragment_home, container, false);
ViewUtils.inject(this, view);
mImgCover = (ImageView)view.findViewById(R.id.img_cover);
mImageView = (ImageView)view.findViewById(R.id.img_indicator01);
initView();
autoScroll();
return view;
}
void initView() {
mPager = (ViewPager) view.findViewById(R.id.viewpager_home_banner);
FragmentManager fm = getChildFragmentManager();
MyPagerAdapter adapter = new MyPagerAdapter(fm);
mPager.setAdapter(adapter);
mPager.setCurrentItem(1000);
mPager.setOnPageChangeListener(new MyPagerListener());
}
/**
* 自动滚动
*/
private void autoScroll() {
mPager.postDelayed(new Runnable() {
@Override
public void run() {
if (!isDragging) {
// 若用户没有拖拽,则自动滚动
mPager.setCurrentItem(mPager.getCurrentItem() + 1);
}
mPager.postDelayed(this, 3000);
}
}, 3000);
}
class MyPagerAdapter extends FragmentStatePagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
BannerItemFragment fragment = new BannerItemFragment();
fragment.setResId(mBanner[position % mBanner.length]);
// fragment.setGoodsInfo(mInfos[position % mBanner.length]);
return fragment;
}
@Override
public int getCount() {
return 10000;
}
}
class MyPagerListener implements OnPageChangeListener {
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
int width = mImgCover.getWidth();
LayoutParams layoutParams = (LayoutParams) mImageView
.getLayoutParams();
int rightMargin = layoutParams.rightMargin;
int endPos = (width + rightMargin) * (position % 4);
int startPos = 0;
if (mLastPos < position) {
// 图片向右移动
startPos = (width + rightMargin) * (position % 4 - 1);
} else {
// 图片向左移动
startPos = (width + rightMargin) * (position % 4 + 1);
}
ObjectAnimator.ofFloat(mImgCover, "translationX", startPos, endPos)
.setDuration(300).start();
mLastPos = position;
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
}
}
前台页面:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="130dp" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_home_banner"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
<ImageView
android:id="@+id/img_indicator01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/jshop_banner_point_inactive" />
<ImageView
android:id="@+id/img_indicator02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/jshop_banner_point_inactive" />
<ImageView
android:id="@+id/img_indicator03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/jshop_banner_point_inactive" />
<ImageView
android:id="@+id/img_indicator04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/jshop_banner_point_inactive" />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:id="@+id/img_cover"
android:src="@drawable/jshop_banner_point_active" />
</FrameLayout>
</FrameLayout>
</RelativeLayout>
用到的BannerItemFragment类
package com.example.epcrm.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import com.example.epcrm.R;
import com.example.epcrm.models.tb_product;
/**
* A simple {@link android.support.v4.app.Fragment} subclass.
*
*/
public class BannerItemFragment extends Fragment implements OnClickListener {
private int position;
private ImageView mImageView;
private int imageRes;
private tb_product goodsInfo;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_banner_item,
container, false);
mImageView = (ImageView) inflate.findViewById(R.id.imgView1);
mImageView.setImageResource(imageRes);
inflate.setOnClickListener(this);
return inflate;
}
public void setResId(int imageRes) {
this.imageRes = imageRes;
}
@Override
public void onClick(View v) {
}
public void setGoodsInfo(tb_product goodsInfo) {
this.goodsInfo = goodsInfo;
}
}