歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android點擊本地縮略圖 彈出顯示服務器原圖

不多說 先上圖:

點擊本地列表中,實現新浪微博中點擊縮略圖 ,加載成原圖! 剛開始做的時候,只是在布局上添加了一個隱藏的xml ,設置熟悉為居中顯示,但後面顯示的圖片

效果有點僵硬,感覺就是疊加在一起,沒有視覺的立體感,所以後面百度了下, 說可以直接用dialog 可以實現,但是沒有找到demo 應用,所以只好自己動手寫了一個

AlertImageDialog.java 類,專門實現點擊彈出,通過服務器下載原圖,下載的過程中,通過progressbar 經行默認加載,當數據回來時候,隱藏progressbar  ,顯示原圖

點擊該Dialog 直接消除,當再次點擊,則不會去服務器,加載在本地數據庫中,這樣實現了基本的功能。

不多說了 ,希望對你有幫助:

  1. /*  
  2.  * @project dongyi_program  
  3.  * @package com.jh.dongyi.activity  
  4.  * @file AlertImageDialog.java  
  5.  * @version  1.0  
  6.  * @author  yourname  
  7.  * @time  2011-12-19 上午08:00:41  
  8.  * CopyRight: */  
  9. package com.jh.dongyi.activity;  
  10.   
  11.   
  12. import com.jh.dongyi.activity.MyWorkProjectActivity.btonclickListener;  
  13. import com.jh.dongyi.util.Configuration;  
  14. import com.jh.dongyi.util.DBFunction;  
  15. import com.jh.dongyi.util.ImageFactory;  
  16. import com.jh.dongyi.util.POAException;  
  17.   
  18. import Android.app.Dialog;  
  19. import android.content.Context;  
  20. import android.graphics.Bitmap;  
  21. import android.os.Handler;  
  22. import android.os.Message;  
  23. import android.view.View;  
  24. import android.view.Window;  
  25. import android.view.WindowManager;  
  26. import android.widget.ImageView;  
  27. import android.widget.ProgressBar;  
  28. /**  
  29.  *   
  30.  * <code>AlertImageDialog</code>  
  31.  * @description: TODO(彈出擴大圖片的dialog)   
  32.  * @version  1.0  
  33.  * @author  liaoyp  
  34.  * @since 2011-12-19  
  35.  */  
  36. public class AlertImageDialog {  
  37.   
  38.     private Context context;  
  39.     private String imagePath;  
  40.     private Dialog dialog;  
  41.     private DBFunction function;  
  42.     private Bitmap bitmap;  
  43.     /**  
  44.      *   
  45.      * @param context    
  46.      * @param originalImage 原圖的地址  
  47.      */  
  48.     public AlertImageDialog(Context context, String originalImage) {  
  49.         /**  
  50.              * constructor   
  51.              * @param number  
  52.              */  
  53.         this.context = context;  
  54.         this.imagePath = originalImage;  
  55.     }  
  56.     Handler handler = new Handler(){  
  57.         @Override  
  58.         public void handleMessage(Message msg) {  
  59.             // TODO Auto-generated method stub  
  60.             // 當數據回來時候影藏bar 顯示原圖  
 
  1.                 if(msg.what == 1 && bitmap != null){  
  2.                 image.setImageBitmap(bitmap);  
  3.                 bar.setVisibility(View.GONE);  
  4.             }  
  5.         }  
  6.     };  
  7.     private ImageView image;  
  8.   
  9.     private ProgressBar bar;  
  10.   
  11.     public void show() {  
  12.         create();  
  13.         dialog.show();  
  14.     }  
  15.       /**  
  16.        *   
  17.        * <code>create</code>  
  18.        * @description: TODO(創建一個bitmap 當本地有則去本地存儲,否則去服務器上下載   
  19.        * @since   2011-12-19    yourname  
  20.        */  
  21.       private void create(){  
  22.           if(imagePath !=null){  
  23.               String path =haveDownld(imagePath);  
  24.                 
  25.               if(path == null){  
  26.                   new Thread(){  
  27.                       public void run(){  
  28.                             String localPath;  
  29.                             try {  
  30. //                              localPath = ImageFactory.getURLBitmap(imagePath,2);  
  31. //                              function = new DBFunction(context);  
  32. //                              function.addPhotoinfo(Configuration.return_customerId,imagePath,localPath);  
Copyright © Linux教程網 All Rights Reserved