DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: mrwbm2008
今日帖子: 10
在线用户: 23
导航: 论坛 -> 文档资料 斑竹:liumazi,ruralboy  
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲▲▲ -
普通会员
2013/10/10 19:44:52
标题:
Android手机从服务器下载图片并显示的示例程序 浏览:5197
加入我的收藏
楼主: 1、概述
    从服务器动态下载图片并生成手机程序界面是非常典型的手机程序设计问题,这里给出一个在下今天所作的一个测试程序的代码。
    服务端: QuickBurro中间件
    网络通信组件:QuickBurro SDK
    目标:将应用服务器上的6个图片文件(img1.png--img6.png)下载到手机端,并显示出来


2、设计时界面
    由于是示例程序,所以简单地搭建界面如下:
此帖子包含附件:
JPEG 图像
大小:123.7K
----------------------------------------------
樵夫的大马甲
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲▲▲ -
普通会员
2013/10/10 19:45:35
1楼: 3、看程序源码

unit main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts, FMX.MultiResBitmap,
  FMX.Memo, FMX.Objects, FMX.StdCtrls, MBFileTransfer, MBConnection, System.iOUtils,
  FMX.Edit;

type
  TMainForm = class(TForm)
    StyleBook1: TStyleBook;
    Panel1: TPanel;
    Panel2: TPanel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    MBConn: TMBConnection;
    FTP: TMBFileTransfer;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure FTPDownloadCompleted(Sender: TObject);
    procedure StartDownload(ImgIndex: integer);
    procedure FTPDownloadAborted(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
     s_defaultdir: string;
     Image: TImage;
     ImageIndex: integer;
     remotefilename,localfilename: string;
  end;

var
  MainForm: TMainForm;

implementation

{$R *.fmx}

//
// 程序启动时,得到路径...
procedure TMainForm.FormCreate(Sender: TObject);
begin
   s_defaultdir:=TPath.GetDocumentsPath+PathDelim;
end;

//
// 一个图片文件下载失败时,继续下载下一个文件...
procedure TMainForm.FTPDownloadAborted(Sender: TObject);
begin
   inc(ImageIndex);
   if ImageIndex<=6 then
      StartDownload(ImageIndex);
end;

//
// 一个图片文件下载完成、进行显示...
procedure TMainForm.FTPDownloadCompleted(Sender: TObject);
begin
//
// 显示...
   with image.MultiResBitmap.Add do
      begin
         bitmap.LoadFromFile(localfilename);
         Scale:=FWinService.GetWindowScale(Self);
       end;
//
// 开始下个图片文件的下载...
   inc(ImageIndex);
   if ImageIndex<=6 then
      StartDownload(ImageIndex);
end;

//
// 退出...
procedure TMainForm.SpeedButton2Click(Sender: TObject);
begin
   halt;
end;

//
// 连接QuickBurro服务器...
procedure TMainForm.SpeedButton3Click(Sender: TObject);
begin
   if mbconn.connect then
      begin
        Speedbutton4.Visible:=true;
        Speedbutton5.Visible:=true;
      end
   else
      showmessage('连接失败,无法继续测试!');
end;

//
// 开始下载...
procedure TMainForm.SpeedButton4Click(Sender: TObject);
begin
   StartDownload(1);
end;

//
// 清除显示的图片...
procedure TMainForm.SpeedButton5Click(Sender: TObject);
begin
   image1.MultiResBitmap.Clear;
   image2.MultiResBitmap.Clear;
   image3.MultiResBitmap.Clear;
   image4.MultiResBitmap.Clear;
   image5.MultiResBitmap.Clear;
   image6.MultiResBitmap.Clear;
end;

//
// 开始下载某个图片文件...
procedure TMainForm.StartDownload(ImgIndex: integer);
begin
   ImageIndex:=imgIndex;
   case imgindex of
     1: Image:=Image1;
     2: Image:=Image2;
     3: Image:=Image3;
     4: Image:=Image4;
     5: Image:=Image5;
     6: Image:=Image6;
   end;
   remotefilename:='/img'+inttostr(imgindex)+'.png';
   localfilename:=s_defaultdir+'img'+inttostr(imgindex)+'.png';
   ftp.DownloadFile(remotefilename,localfilename,0);
end;

end.


4、看运行结果
此帖子包含附件:
JPEG 图像
大小:70.3K
----------------------------------------------
樵夫的大马甲
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲▲▲ -
普通会员
2013/10/10 19:48:14
2楼: 5、结论
   要注意的几点:
1)、QuickBurro的文件传输控件是异步的,所以代码略显复杂
2)、注意图片文件的动态显示方法,即这一段:
//
// 显示...
   with image.MultiResBitmap.Add do
      begin
         bitmap.LoadFromFile(localfilename);
         Scale:=FWinService.GetWindowScale(Self);
       end;
----------------------------------------------
樵夫的大马甲
作者:
男 jpweidmann (测试人员) ★☆☆☆☆ -
盒子活跃会员
2013/10/10 19:57:22
3楼: 按此在新窗口浏览图片

ftp下载?
----------------------------------------------
-
作者:
男 cnhotel (cnhotel) ★☆☆☆☆ -
盒子活跃会员
2013/10/10 20:00:26
4楼: 顶一下,用其它的通信方式可以实现吗?
----------------------------------------------
-
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲▲▲ -
普通会员
2013/10/10 20:02:00
4楼: 哦,不是标准FTP,而是中间件的文件传输功能。
只是取了个FTP的控件实例名而已
----------------------------------------------
樵夫的大马甲
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲▲▲ -
普通会员
2013/10/10 20:02:22
5楼: 其他的通信方式当然可以
----------------------------------------------
樵夫的大马甲
作者:
男 shileizi (sl) ★☆☆☆☆ -
普通会员
2013/10/10 20:05:15
6楼: mark
----------------------------------------------
-
作者:
男 ingener (ingenersoft) ★☆☆☆☆ -
盒子活跃会员
2013/10/11 8:45:05
7楼: 先行者!赞一个,顶着。
----------------------------------------------
-
作者:
男 ifiles ( ) ★☆☆☆☆ -
盒子活跃会员
2013/10/11 9:26:40
8楼: 不错,能提供源码瞧瞧吗,界面是用stylebook做的吗
----------------------------------------------
-
作者:
男 jopher3 (樵夫的马六甲) ▲▲▲▲▲ -
普通会员
2013/10/11 12:22:55
9楼: 楼上,眼睛不好使啦,
源码分明在,还叫提供源码。。。
----------------------------------------------
樵夫的大马甲
作者:
男 ly_212002 (舅子哥) ★☆☆☆☆ -
盒子活跃会员
2013/10/11 12:47:09
10楼:
----------------------------------------------
设计是我生命中的一部分
作者:
男 dongsir (dongsir) ▲▲▲▲▲ -
普通会员
2013/10/11 13:22:38
11楼: 砍柴的 谢谢分享 这个困扰你一天的问题
----------------------------------------------
-
作者:
男 patebeng2 (patebeng2) ▲▲△△△ -
普通会员
2022/2/17 16:09:10
12楼: “50万彩礼”真相:两代人择业观的激烈踫撞水泵辽宁新增15例本土确诊水泵厂郑州原市长侯红任河南卫健委副主任水泵公司王亚平空间站弹古筝送元宵祝福球阀大范围雨雪将上线 超25省份受影响
焊接球阀
全焊接球阀
直埋全焊接球阀
埋地全焊接球阀

水泵
离心泵
上海离心泵
水泵厂
水泵厂家
泵厂家
帕特
螺杆泵
离心泵厂家
污泥螺杆泵13
上海螺杆泵
球阀厂10
Fully Welded Ball Valve
all Welded Ball Valve
全焊接阀门
球阀


全焊接球阀
焊接球阀
泵厂家

螺杆泵
帕特
----------------------------------------------
磁力泵
螺杆泵
污泥螺杆泵
离心泵
化工泵
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行97.65625毫秒 RSS