ViewPager 打造 图片幻灯切换
来源:互联网 发布:宁波seo入门教程 编辑:程序博客网 时间:2024/05/16 09:09
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;// 是否被拖拽@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubview = 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() {@Overridepublic void run() {if (!isDragging) {// 若用户没有拖拽,则自动滚动mPager.setCurrentItem(mPager.getCurrentItem() + 1);}mPager.postDelayed(this, 3000);}}, 3000);}class MyPagerAdapter extends FragmentStatePagerAdapter {public MyPagerAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int position) {BannerItemFragment fragment = new BannerItemFragment();fragment.setResId(mBanner[position % mBanner.length]);// fragment.setGoodsInfo(mInfos[position % mBanner.length]);return fragment;}@Overridepublic int getCount() {return 10000;}}class MyPagerListener implements OnPageChangeListener {@Overridepublic void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {}@Overridepublic 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;}@Overridepublic 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;@Overridepublic 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;}@Overridepublic void onClick(View v) {}public void setGoodsInfo(tb_product goodsInfo) {this.goodsInfo = goodsInfo;}}
0 0
- ViewPager 打造 图片幻灯切换
- JS+CSS打造腾讯网漂亮的带缩略图的图片幻灯切换效果
- js+css打造的仿土豆网带缩略图的图片幻灯切换效果
- JS切换图片幻灯切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- Android 自定义 ViewPager 打造千变万化的图片切换效果
- 图像梯度特征的常用边缘检测算子:Sobel、Prewitt、Roberts
- hdu 4655 Cut Pieces(贪心)
- linux和vxworks的实时性
- 没有BAT3级的应急响应中心,互联网公司该如何应对数据泄露事件?
- Unity3D 相同标签或同名游戏对象的逐个监测
- ViewPager 打造 图片幻灯切换
- android 存储及注意事项!(java io流,和sharedperference存储)
- Cloud Design Pattern - Compute Resource Consolidation(服务聚合)
- maven的生命周期和插件(九)
- 【DP】 BZOJ 3675: [Apio2014]序列分割
- 怎么引入bsdsocket来搭建一个一对一的服务器
- Light Bulb
- TL-WR2041N 自动登陆 自动控制设置
- jdk与jre的区别