1
我想通過套接字發送圖像,並且在發送進程進入進度條時必須顯示,並且在圖像發送時它應該更新,但是當我嘗試這樣代碼沒有顯示進度條,圖像正在發送。 我試過,但進度條顯示,直接100和處理仍在進行,並在進度條顯示100%我想在發送圖像時顯示進度條
int count;
try {
//image send
client = new Socket(ServerIP,4444);
File file = new File(path);
byte[] mybytearray = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
//bis.read(mybytearray, 0, mybytearray.length);
OutputStream os = client.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF(file.getName());
long total = 0;
while ((count = bis.read(mybytearray)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/file.length()));
os.write(mybytearray, 0, mybytearray.length);
//os.write(mybytearray, 0, mybytearray.length);
}
// os.write(mybytearray, 0, mybytearray.length);
// os.write(mybytearray, 0, mybytearray.length);
os.flush();
bis.close();
fis.close();
client.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
對不起,但這是發送圖像的實際代碼和1件事我忘了是int count;在try {聲明之上,但是如果你想要的話,我會放置包含pre,post方法和進度條細節的代碼的其餘部分... – 2013-03-24 11:28:02
並根據你,我應該看到進度的最大值當圖像正在發送時,從0進步到100% – 2013-03-24 11:30:22
實際上,您的publishProgress函數的實現將非常有用,可以查看實際更新ProgressBar的方式 – Goddchen 2013-03-24 19:17:45