歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android點擊本地縮略圖 彈出顯示服務器原圖

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

日期:2017/3/1 10:46:13   编辑:Linux編程

不多說 先上圖:

點擊本地列表中,實現新浪微博中點擊縮略圖 ,加載成原圖! 剛開始做的時候,只是在布局上添加了一個隱藏的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. import com.jh.dongyi.activity.MyWorkProjectActivity.btonclickListener;
  11. import com.jh.dongyi.util.Configuration;
  12. import com.jh.dongyi.util.DBFunction;
  13. import com.jh.dongyi.util.ImageFactory;
  14. import com.jh.dongyi.util.POAException;
  15. import Android.app.Dialog;
  16. import android.content.Context;
  17. import android.graphics.Bitmap;
  18. import android.os.Handler;
  19. import android.os.Message;
  20. import android.view.View;
  21. import android.view.Window;
  22. import android.view.WindowManager;
  23. import android.widget.ImageView;
  24. import android.widget.ProgressBar;
  25. /**
  26. *
  27. * <code>AlertImageDialog</code>
  28. * @description: TODO(彈出擴大圖片的dialog)
  29. * @version 1.0
  30. * @author liaoyp
  31. * @since 2011-12-19
  32. */
  33. public class AlertImageDialog {
  34. private Context context;
  35. private String imagePath;
  36. private Dialog dialog;
  37. private DBFunction function;
  38. private Bitmap bitmap;
  39. /**
  40. *
  41. * @param context
  42. * @param originalImage 原圖的地址
  43. */
  44. public AlertImageDialog(Context context, String originalImage) {
  45. /**
  46. * constructor
  47. * @param number
  48. */
  49. this.context = context;
  50. this.imagePath = originalImage;
  51. }
  52. Handler handler = new Handler(){
  53. @Override
  54. public void handleMessage(Message msg) {
  55. // TODO Auto-generated method stub
  56. // 當數據回來時候影藏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. private ProgressBar bar;
  9. public void show() {
  10. create();
  11. dialog.show();
  12. }
  13. /**
  14. *
  15. * <code>create</code>
  16. * @description: TODO(創建一個bitmap 當本地有則去本地存儲,否則去服務器上下載
  17. * @since 2011-12-19 yourname
  18. */
  19. private void create(){
  20. if(imagePath !=null){
  21. String path =haveDownld(imagePath);
  22. if(path == null){
  23. new Thread(){
  24. public void run(){
  25. String localPath;
  26. try {
  27. // localPath = ImageFactory.getURLBitmap(imagePath,2);
  28. // function = new DBFunction(context);
  29. // function.addPhotoinfo(Configuration.return_customerId,imagePath,localPath);
Copyright © Linux教程網 All Rights Reserved