1
我想通过套接字发送图像,并且发送进程进入进度条时必须显示,并且应该在图像发送时进行更新,但是当我尝试此代码时进度条未显示,图像正在发送。我想在发送图像时实现进度条
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());
int bytesread=0;
ProgressDialog pd = new ProgressDialog(c);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMessage("Sending...");
pd.setCancelable(false);
pd.setProgress(0);
pd.show();
while((bytesread=fis.read(mybytearray))>0)
os.write(mybytearray, 0, mybytearray.length);
int old_value=pd.getProgress();
int new_read=(int)(((float)file.length()/bytesread));
int value= new_read+old_value;
pd.setProgress(value);
pd.dismiss();
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();
}
感谢解决方案,但我要实现的水平进度,如果在通知 – 2013-03-23 10:48:28
可能显示它尝试使用水平进度条代替这个垂直进度条。 – 2013-03-23 10:51:11
我尝试过,但发送图像后直接获得100,而不是在发送图像时获取更新 – 2013-03-23 11:17:35