不多說 先上圖:
點擊本地列表中,實現新浪微博中點擊縮略圖 ,加載成原圖! 剛開始做的時候,只是在布局上添加了一個隱藏的xml ,設置熟悉為居中顯示,但後面顯示的圖片
效果有點僵硬,感覺就是疊加在一起,沒有視覺的立體感,所以後面百度了下, 說可以直接用dialog 可以實現,但是沒有找到demo 應用,所以只好自己動手寫了一個
AlertImageDialog.java 類,專門實現點擊彈出,通過服務器下載原圖,下載的過程中,通過progressbar 經行默認加載,當數據回來時候,隱藏progressbar ,顯示原圖
點擊該Dialog 直接消除,當再次點擊,則不會去服務器,加載在本地數據庫中,這樣實現了基本的功能。
不多說了 ,希望對你有幫助:
- /*
- * @project dongyi_program
- * @package com.jh.dongyi.activity
- * @file AlertImageDialog.java
- * @version 1.0
- * @author yourname
- * @time 2011-12-19 上午08:00:41
- * CopyRight: */
- package com.jh.dongyi.activity;
-
-
- import com.jh.dongyi.activity.MyWorkProjectActivity.btonclickListener;
- import com.jh.dongyi.util.Configuration;
- import com.jh.dongyi.util.DBFunction;
- import com.jh.dongyi.util.ImageFactory;
- import com.jh.dongyi.util.POAException;
-
- import Android.app.Dialog;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.os.Handler;
- import android.os.Message;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- import android.widget.ImageView;
- import android.widget.ProgressBar;
- /**
- *
- * <code>AlertImageDialog</code>
- * @description: TODO(彈出擴大圖片的dialog)
- * @version 1.0
- * @author liaoyp
- * @since 2011-12-19
- */
- public class AlertImageDialog {
-
- private Context context;
- private String imagePath;
- private Dialog dialog;
- private DBFunction function;
- private Bitmap bitmap;
- /**
- *
- * @param context
- * @param originalImage 原圖的地址
- */
- public AlertImageDialog(Context context, String originalImage) {
- /**
- * constructor
- * @param number
- */
- this.context = context;
- this.imagePath = originalImage;
- }
- Handler handler = new Handler(){
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- // 當數據回來時候影藏bar 顯示原圖
- if(msg.what == 1 && bitmap != null){
- image.setImageBitmap(bitmap);
- bar.setVisibility(View.GONE);
- }
- }
- };
- private ImageView image;
-
- private ProgressBar bar;
-
- public void show() {
- create();
- dialog.show();
- }
- /**
- *
- * <code>create</code>
- * @description: TODO(創建一個bitmap 當本地有則去本地存儲,否則去服務器上下載
- * @since 2011-12-19 yourname
- */
- private void create(){
- if(imagePath !=null){
- String path =haveDownld(imagePath);
-
- if(path == null){
- new Thread(){
- public void run(){
- String localPath;
- try {
- // localPath = ImageFactory.getURLBitmap(imagePath,2);
- // function = new DBFunction(context);
- // function.addPhotoinfo(Configuration.return_customerId,imagePath,localPath);