Thông thường, điều này đơn giản như tải hình ảnh từ url trong nền và theo dõi tiến trình của nó bằng cách ràng buộc thuộc tính tiến trình của thanh tiến trình vào thuộc tính tiến trình của hình ảnh . Điều đó sẽ sao chép chức năng của mã Android mà bạn đã đăng với ít mã hơn nhiều.
ProgressBar bar = new ProgressBar();
Image image = new Image(url, true);
bar.progressProperty().bind(image.progressProperty());
Điều khó khăn duy nhất ở đây là mã không phải Android mà bạn đã đăng không giống với mã Android về chức năng. Thay vì truy xuất hình ảnh từ URL, mã không phải Android đang truy xuất hình ảnh từ cơ sở dữ liệu.
Nếu bạn muốn theo dõi tiến độ truy xuất hình ảnh được lưu trữ trong cơ sở dữ liệu, thì bạn cần thực hiện thêm một số việc sau:
- Trong một trường bổ sung trong cơ sở dữ liệu, hãy lưu trữ kích thước của hình ảnh.
- Lưu trữ chính hình ảnh đó trong Blob trong cơ sở dữ liệu.
- Truy xuất tổng kích thước của hình ảnh từ cơ sở dữ liệu khi được yêu cầu.
- Lấy Blob từ cơ sở dữ liệu dưới dạng một luồng .
- Đăng ký URL tùy chỉnh giao thức có thể lấy luồng cơ sở dữ liệu và chuyển đổi luồng thành URL. (Ngoài ra, bạn có thể lưu trữ một servlet ứng dụng web thực hiện chuyển đổi và trả về dữ liệu qua http ).
- Giờ đây, bạn có thể tải hình ảnh trong nền bằng giao thức URL tùy chỉnh của mình và theo dõi tiến trình của hình ảnh thông qua thuộc tính tiến trình như trước đây.
Thực hiện bước 5 khá phức tạp và tôi sẽ không viết mã để thực hiện ở đây vì việc tạo mã như vậy sẽ khiến tôi mất nhiều thời gian.