package com.suan.weclient.activity; import android.app.Activity; import android.app.Dialog; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import com.suan.weclient.R; import com.suan.weclient.util.GlobalContext; import com.suan.weclient.util.Util; import com.suan.weclient.util.data.DataManager; import com.suan.weclient.util.net.WeChatLoader; import com.suan.weclient.util.net.WechatManager; import com.suan.weclient.util.net.images.ImageCacheManager; import com.umeng.analytics.MobclickAgent; public class ShowImgActivity extends Activity { Dialog loadingDialog; private LinearLayout mainLayout; private RelativeLayout bgLayout; private ImageView contentImageView; private static int DISK_IMAGECACHE_SIZE = 1024 * 1024 * 10; private static CompressFormat DISK_IMAGECACHE_COMPRESS_FORMAT = CompressFormat.PNG; private static int DISK_IMAGECACHE_QUALITY = 100; // PNG is lossless so // quality is ignored // but must be provided private ImageCacheManager mImageCacheManager; private DataManager mDataManager; /* * * 12:too much time */ /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { /* request no title mode */ requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setTheme(R.style.Theme_Transparent); setContentView(R.layout.show_img_layout); initImgCache(); initWidget(); initData(); loadImg(); } public void initImgCache() { mImageCacheManager = ImageCacheManager.getInstance(); mImageCacheManager.init(this, this.getPackageCodePath(), DISK_IMAGECACHE_SIZE, DISK_IMAGECACHE_COMPRESS_FORMAT, DISK_IMAGECACHE_QUALITY); } private void initData() { GlobalContext globalContext = (GlobalContext) getApplicationContext(); mDataManager = globalContext.getDataManager(); } public void onResume() { super.onResume(); MobclickAgent.onResume(this); } public void onPause() { super.onPause(); MobclickAgent.onPause(this); } private void loadImg() { Bitmap imgBitmap = mImageCacheManager .getBitmap(ImageCacheManager.CACHE_MESSAGE_CONTENT + mDataManager.getImgHolder().getMessageBean().getId()); if (imgBitmap == null) { loadingDialog.show(); mDataManager.getWechatManager().getMessageImg( mDataManager.getCurrentPosition(), mDataManager.getImgHolder().getMessageBean(), contentImageView, WeChatLoader.WECHAT_URL_MESSAGE_IMG_LARGE, new WechatManager.OnActionFinishListener() { @Override public void onFinish(int code, Object object) { if (code == WechatManager.ACTION_SUCCESS) { try { Bitmap bitmap = (Bitmap) object; mImageCacheManager .putBitmap( ImageCacheManager.CACHE_MESSAGE_CONTENT + mDataManager.getImgHolder().getMessageBean().getId(), bitmap, true); contentImageView.setImageBitmap(bitmap); loadingDialog.dismiss(); } catch (Exception exception) { } } } }); } else { contentImageView.setImageBitmap(imgBitmap); } } private void initWidget() { loadingDialog = Util.createLoadingDialog(this, "图片加载中", WechatManager.DIALOG_POP_NO); mainLayout = (LinearLayout) findViewById(R.id.show_img_layout); mainLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); overridePendingTransition(R.anim.search_activity_fly_in,R.anim.search_activity_fly_out); } }); bgLayout = (RelativeLayout) findViewById(R.id.show_img_bg_layout); contentImageView = (ImageView) findViewById(R.id.show_img_img_content); } }