package com.wyp.materialqqlite.ui; import java.io.File; import java.util.List; import com.wyp.materialqqlite.AppData; import com.wyp.materialqqlite.HomeWatcher; import com.wyp.materialqqlite.HomeWatcher.OnHomePressedListener; import com.wyp.materialqqlite.R; import com.wyp.materialqqlite.qqclient.QQClient; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ImageView.ScaleType; public class PicViewerActivity extends Activity implements OnHomePressedListener { private ViewPager mViewPager; private TestAdapter mAdapter; private String m_strPath; private List<String> m_arrFileName; private int m_nCurIndex = 0; private HomeWatcher mHomeWatcher; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_picviewer); QQClient client = AppData.getAppData().getQQClient(); m_strPath = client.getChatPicFolder(0); Intent intent = getIntent(); m_arrFileName = intent.getExtras().getStringArrayList("urls"); m_nCurIndex = intent.getIntExtra("curindex", 0); mViewPager = (ViewPager)findViewById(R.id.pager); mAdapter = new TestAdapter(this, m_arrFileName); mViewPager.setAdapter(mAdapter); mViewPager.setCurrentItem(m_nCurIndex); } @Override protected void onResume() { super.onResume(); AppData.getAppData().cancelNotify(1); mHomeWatcher = new HomeWatcher(this); mHomeWatcher.setOnHomePressedListener(this); mHomeWatcher.startWatch(); } @Override protected void onStop() { super.onStop(); mHomeWatcher.setOnHomePressedListener(null); mHomeWatcher.stopWatch(); } @Override public void onDestroy() { super.onDestroy(); } @Override public void onHomePressed() { String strTicker = getString(R.string.bgrun); String strTitle = getString(R.string.app_name); String strText = getString(R.string.nonewmsg); AppData.getAppData().showNotify(1, this, strTicker, strTitle, strText); } @Override public void onHomeLongPressed() { // do nothing } public class TestAdapter extends PagerAdapter { private List<String> mPaths; private Context mContext; public TestAdapter(Context cx, List<String> paths) { mContext = cx.getApplicationContext(); mPaths = paths; } @Override public int getCount() { // TODO Auto-generated method stub return mPaths.size(); } @Override public boolean isViewFromObject(View view, Object obj) { // TODO Auto-generated method stub return view == (View)obj; } @Override public Object instantiateItem (ViewGroup container, int position) { ImageView iv = new ImageView(mContext); try { iv.setBackgroundColor(Color.BLACK); iv.setScaleType(ScaleType.CENTER_INSIDE); String strFileName = m_strPath+mPaths.get(position); File file = new File(strFileName); if (file.exists()) { Bitmap bm = BitmapFactory.decodeFile(strFileName); if (bm != null) { iv.setImageBitmap(bm); } else { iv.setImageResource(R.drawable.aio_image_default_round); } } else { iv.setImageResource(R.drawable.aio_image_default_round); } } catch (OutOfMemoryError e) { // TODO Auto-generated catch block e.printStackTrace(); } ((ViewPager)container).addView(iv, 0); return iv; } @Override public void destroyItem (ViewGroup container, int position, Object object) { container.removeView((View)object); } } }