package com.gh.gamecenter; import android.content.Intent; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.DisplayMetrics; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView.ScaleType; import android.widget.RelativeLayout; import com.gh.base.BaseActivity; import com.gh.common.util.DisplayUtils; import com.gh.common.util.ImageUtils; import com.gh.common.view.Gh_ImageView; import com.gh.common.view.Gh_ImageView.OnSingleTapListener; import java.util.ArrayList; /** * 查看游戏截图页面 * * @author 黄壮华 * */ public class ViewImageActivity extends BaseActivity implements OnPageChangeListener { private ViewPager viewimage_vp_show; private ViewImageAdapter adapter; private View viewimage_slide_line; private RelativeLayout.LayoutParams rparams; private ArrayList urls; private int current; private int width; private String scaleType; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); urls = intent.getStringArrayListExtra("urls"); current = intent.getIntExtra("current", 0); scaleType = intent.getStringExtra("ScaleType"); setContentView(R.layout.activity_viewimage); DisplayMetrics outMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(outMetrics); width = outMetrics.widthPixels / urls.size(); rparams = new RelativeLayout.LayoutParams(width, DisplayUtils.dip2px( getApplicationContext(), 1)); rparams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); rparams.bottomMargin = DisplayUtils.dip2px(getApplicationContext(), 10); rparams.leftMargin = width * current; viewimage_slide_line = findViewById(R.id.viewimage_slide_line); viewimage_slide_line.setLayoutParams(rparams); viewimage_vp_show = (ViewPager) findViewById(R.id.viewimage_vp_show); adapter = new ViewImageAdapter(); viewimage_vp_show.setAdapter(adapter); viewimage_vp_show.setCurrentItem(current); viewimage_vp_show.addOnPageChangeListener(this); } private class ViewImageAdapter extends PagerAdapter implements OnSingleTapListener { @Override public int getCount() { return urls.size(); } @Override public Object instantiateItem(ViewGroup container, int position) { Gh_ImageView imageView = new Gh_ImageView(ViewImageActivity.this); imageView.setOnSingleTapListener(this); if (scaleType != null) { ImageUtils.getInstance(getApplicationContext()).display( urls.get(position), imageView, ScaleType.FIT_CENTER); } else { ImageUtils.getInstance(getApplicationContext()).display( urls.get(position), imageView); } container.addView(imageView); return imageView; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); object = null; } @Override public void onSingleTap() { finish(); } } @Override public void onPageScrollStateChanged(int newState) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { if (positionOffset != 0) { rparams.leftMargin = (int) (width * (positionOffset + position)); viewimage_slide_line.setLayoutParams(rparams); } } @Override public void onPageSelected(int position) { } @Override protected void onDestroy() { super.onDestroy(); viewimage_vp_show = null; adapter = null; viewimage_slide_line = null; rparams = null; urls = null; } }