package com.ljp.laucher.picsshow; import java.io.IOException; import java.io.InputStream; import java.util.LinkedList; import java.util.Random; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Gravity; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.FrameLayout; import android.widget.Gallery; import android.widget.ImageButton; import android.widget.ImageView; import com.adview.AdViewInterface; import com.adview.AdViewLayout; import com.ljp.laucher.R; import com.ljp.laucher.itemcontent.ViewpageAdater; import com.ljp.laucher.itemcontent.imageview.ImageViewActivity; import com.ljp.laucher.util.Configure; import com.ljp.laucher.util.ImageOperation; import com.ljp.laucher.util.IntentData; import com.ljp.laucher.util.ToastAndDialog; public class PicsShowActivity extends Activity implements OnPageChangeListener, OnClickListener, AdViewInterface { ViewPager viewpager; ImageView btn_pre, btn_next, btn_save; ImageButton btn_back; LinkedList<View> view_List; ViewpageAdater adapter; ProgressDialog progressDialog; String[] files = null; AssetManager am; String intentString=null;AdViewLayout adViewLayout;SharedPreferences sp ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_picsshow); intentString= getIntent().getStringExtra("text"); initWidght(); bindEvent(); initData();// new Random().nextInt(7) for (int i = 0; i < files.length; i++) { view_List.add(addView(i)); } adapter = new ViewpageAdater(view_List); viewpager.setAdapter(adapter); viewpager.setOnPageChangeListener(this); loadContentImg(0, 1);Configure._position=0; sp = getSharedPreferences("my_adview", 0); boolean isClick =sp.getBoolean("isAddview_Click", false);System.out.println(isClick+"==="); if(!isClick){System.out.println("==="); ToastAndDialog.Toast(PicsShowActivity.this, "广告点击一次后永久不再显示", 6000); adViewLayout = new AdViewLayout(this, "SDK20122324460254wedw9ona4thve2i"); adViewLayout.setAdViewInterface(PicsShowActivity.this); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT); params.gravity=Gravity.TOP; this.addContentView(adViewLayout, params); } ToastAndDialog.Toast(PicsShowActivity.this, "点击图片随便看", 3000); } public void initData() { try { files = getResources().getAssets().list("level-3"); } catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } Configure.DetailWeiboImages = new Bitmap[files.length+1]; view_List = new LinkedList<View>(); am = getResources().getAssets(); randomFiles(); } public void initWidght() { viewpager = (ViewPager) findViewById(R.id.pic_viewpager); btn_pre = (ImageView) findViewById(R.id.iv_pre); btn_next = (ImageView) findViewById(R.id.iv_next); btn_save = (ImageView) findViewById(R.id.iv_save); btn_back = (ImageButton) findViewById(R.id.pic_back); } public void bindEvent() { btn_pre.setOnClickListener(this); btn_next.setOnClickListener(this); btn_save.setOnClickListener(this); btn_back.setOnClickListener(this); } public void randomFiles(){ int size = files.length; for(int i=0;i<size;i++){ int random=new Random().nextInt(size-i); String a = files[random]; files[random] = files[size-1-i]; files[size-1-i]=a; } } public View addView(final int position) { ImageView iv = new ImageView(PicsShowActivity.this); iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE); iv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if(Configure.DetailWeiboImages[Configure._position] !=null){ Intent intent = new Intent(PicsShowActivity.this, ImageViewActivity.class); intent.putExtra("imgUrl","level-3/"+ files[position]); IntentData.PicFrom=1; startActivity(intent); //overridePendingTransition(R.anim.popshow_anim, R.anim.pophidden_anim); } } }); return iv; } @Override public void onPageScrolled(int paramInt1, float paramFloat, int paramInt2) { } @Override public void onPageScrollStateChanged(int paramInt) { } @Override public void onPageSelected(int position) { // TODO Auto-generated method stub Configure._position = position; if (position == 0) { loadContentImg(0, 1); } else if (position == view_List.size() - 1) { loadContentImg(position, position - 1); } else { loadContentImg(position - 1, position, position + 1); } recyleBitmap(position); } public void loadContentImg(int... positions) { for (final int position : positions) { ImageView content_img = (ImageView) view_List .get(position < view_List.size() ? position : view_List .size() - 1); if (Configure.DetailWeiboImages[position] == null) { InputStream is = null; try { is = am.open("level-3/"+ files[position]); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } ; Configure.DetailWeiboImages[position] = BitmapFactory.decodeStream(is); } content_img.setImageBitmap(Configure.DetailWeiboImages[position]); } } public void recyleBitmap(int position) { if (position - 2 > 0 && position + 2 < Configure.DetailWeiboImages.length) { if (Configure.DetailWeiboImages[position - 2] != null) { ImageView imageview = (ImageView) view_List.get(position - 2); imageview.setImageBitmap(null); Configure.DetailWeiboImages[position - 2].recycle();Configure.DetailWeiboImages[position - 2]=null; } if (Configure.DetailWeiboImages[position + 2] != null) { ImageView imageview = (ImageView) view_List.get(position + 2); imageview.setImageBitmap(null); Configure.DetailWeiboImages[position + 2].recycle();Configure.DetailWeiboImages[position + 2]=null; } } System.gc(); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.iv_next: viewpager.setCurrentItem(Configure._position + 1); break; case R.id.iv_pre: viewpager.setCurrentItem(Configure._position - 1); break; case R.id.iv_save: if (!android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){ ToastAndDialog.Toast(PicsShowActivity.this, "请插入SDcard", 3000); }else if (ImageOperation.isSave("/love_girls/", "level-3/"+ files[Configure._position])) { ToastAndDialog.Toast(PicsShowActivity.this, "已经保存在love_girls文件夹哦", 3000); } else { progressDialog = ProgressDialog.show(PicsShowActivity.this, "请稍等片刻...", "小夜正在努力的为您保存图片", true, true); new Thread(){ public void run(){ ImageOperation.saveFileFromAssets(PicsShowActivity.this,"/love_girls/", "level-3/"+ files[Configure._position]); Message msg = BroadcastHandler.obtainMessage(); BroadcastHandler.sendMessage(msg); } }.start(); } break; case R.id.pic_back: finish(); overridePendingTransition(R.anim.anim_fromleft_toup6, R.anim.anim_down_toright6); break; } } // 退出 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(view_List!=null && view_List.size()>0){ ImageView imageview = (ImageView) view_List.get(Configure._position); imageview.setImageBitmap(null); Configure.DetailWeiboImages =null; } finish(); overridePendingTransition(R.anim.anim_fromleft_toup6, R.anim.anim_down_toright6); return false; } return false; } private Handler BroadcastHandler = new Handler() { public void handleMessage(Message msg) { progressDialog.dismiss(); ToastAndDialog.Toast(PicsShowActivity.this, "已经为您保存于love_girls文件夹之下", 3000); } }; @Override public void onClickAd() { // TODO Auto-generated method stub sp.edit().putBoolean("isAddview_Click", true).commit(); adViewLayout.setVisibility(8); } @Override public void onDisplayAd() { // TODO Auto-generated method stub } }