本文共 4733 字,大约阅读时间需要 15 分钟。
public class BigPicActivity extends BaseActivity implements BigPicInterface { @Bind(R.id.title_content) TextView titleContent; @Bind(R.id.title_return) ImageView titleReturn; @Bind(R.id.search) ImageView search; @Bind(R.id.extendedVP) ExtendedViewPager extendedVP; @Bind(R.id.tv_numcount) TextView tvNumcount; @Bind(R.id.tv_describe) TextView tv_describe; private String type = "eighteen"; //请求类型 six : 6 张 eighteen : 18 张 private User user; private int position; private BigPicData bigPicData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bigpic); position = getIntent().getIntExtra(ActivityHelp.KEY_POSITION, 0); initData(); } private void initView() { tv_describe.setMovementMethod(new ScrollingMovementMethod()); extendedVP.setAdapter(new BigPicAdapter(bigPicData.getData(),appContext)); extendedVP.setCurrentItem(position); extendedVP.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { setShoePerNum(position); } @Override public void onPageScrollStateChanged(int state) { } }); setShoePerNum(position); } private void initData() { BigPicPresenter bigPicPresenter = new BigPicPresenter(DataManager.getInstance()); bigPicPresenter.attachView(this); bigPicPresenter.loadData(); } @Override public void onLoadDataSuccess(BigPicData bigPicData) { if (bigPicData.getStatus() == Constant.SUCCESS) { this.bigPicData = bigPicData; initView(); }else{ MyToast.showShort(bigPicData.getMsg()); } } private void setShoePerNum(int num) { if (bigPicData.getData() != null) { String title = bigPicData.getData().get(num).getTitle(); titleContent.setText(title); tv_describe.setText(bigPicData.getData().get(num).getDescription()); num++; if (num <= 0) num = 1; tvNumcount.setText(num + "/" + bigPicData.getData().size()); } }
}
//Adapter方法
public class BigPicAdapter extends PagerAdapter { private ListData; private AppContext appContext; public BigPicAdapter(List Data, AppContext appContext) { this.Data = Data; this.appContext = appContext; } @Override public int getCount() { return Data.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { TouchImageView img = new TouchImageView(appContext); img.setScaleType(ImageView.ScaleType.FIT_CENTER); String url = Data.get(position).getPictureUrl(); if (!TextUtils.isEmpty(url)&&url.startsWith("http")) { ImageLoader.getInstance().displayImage(url, img, appContext.options); } else { ImageLoader.getInstance().displayImage("file://" + url, img, appContext.options); } container.addView(img, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); return img; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}
//XML方法
//自定义方法
package com.jzg.jcpt.view;import android.content.Context;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import android.view.View;/** * 支持放大缩小image的viewpager */public class ExtendedViewPager extends ViewPager { public ExtendedViewPager(Context context) { super(context); } public ExtendedViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if (v instanceof TouchImageView) { // // canScrollHorizontally is not supported for Api < 14. To get around this issue, // ViewPager is extended and canScrollHorizontallyFroyo, a wrapper around // canScrollHorizontally supporting Api >= 8, is called. // return ((TouchImageView) v).canScrollHorizontallyFroyo(-dx); } else { return super.canScroll(v, checkV, dx, x, y); } }}
转载地址:http://ydggi.baihongyu.com/