بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

 نحوه ی فرمت کردن Integer برای نمایش درست میزان دانلود فایل در ProgressDialog

مدیریت گفتگو
JSONObject 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام ، وقت بخیر

مشکلی هست برام تو ProgressDialog از نوع STYLE_HORIZONTAL که برای نمایش میزان دانلود میخوام ازش استفاده کنم

مشکل اینه که بایت رو نشون میده و با هیچ صراطی مستقیم نمیشه که به صورت اعشاری نشون بده
هم مقدار کل رو هم مقدار دانلود شده رو

کدی که بابت فرمت مینویسم و تاثیری نداره اینه : 

 downloadProgressDialog.setProgressNumberFormat("%1d/%2d b");

اگه به صورت زیر بنویسم IllegalFormatPrecisionException میده :

        downloadProgressDialog.setProgressNumberFormat("%.2d/%.2d KB");

با f که مینویسم یه اررور دیگه میده که میگه این طرز فرمت  کردن Integer نیست 

با # کلا نمیشناسه

        final int fileSize = connection.getContentLength();
        downloadProgressDialog.setMax(fileSize);
...
..
.
downloadProgressDialog.setProgress(finalDownloadedSize);

 

برای اون عزیزی که هنوز متوجه نشده میگم
چیزی که الان دارم میبینم اینه مثلا ( 69384957/102947839 ) 
و چیزی که میخوام ببینم اینه ( مگابایت 69.38/102/95 ) 

لطفا برسید به دادم :|

نظرات

alisherafat01 10 سال پیش
خب نمیشه اون fileSize رو تقسیم به 1048578 کنی تا براساس مگابایت سایزشو بگیری و نشون بدی؟
Spirit 10 سال پیش
جواب رو ببین کیف کن لینک - با این یافتم "java format bytes human readable"
JSONObject 10 سال پیش
علی شریعتی => قبل از پروگرس دیالوگ خودم کاستوم یه دونه داشتم که تکست ویو رو خودم ست تکست می کردم ، اونجا دو بار تقسیم میکردم به 1024 ردیف میشد چون فایل سایزم یه استرینگ بود ولی اینجا پروگرس دیالوگ فایل ساز رو ınteger میگیره ازم قالب بندیشم نمیفهمم
JSONObject 10 سال پیش
نصرتی => لینک خیلی مفیدی بود ولی جواب این مشکل توش نبود :(
Spirit 10 سال پیش
من مشکل شما رو خوانا و قابل درک کردن یه عدد بزرگ برای یه آدم معمولی دیدم، این نبود یعنی؟

پاسخ‌ها 1

Criss 10 سال پیش

از این استفاده کنید :

 private String ConvertByteToMB(int bytelenght) {
float sizeInKB = (float) bytelenght / 1024;
float sizeInMB = (float) sizeInKB / 1024;

return String.format("%.2f" + "MB", sizeInMB);
}

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .