Drive Man نشر 1 يونيو 2023 أرسل تقرير نشر 1 يونيو 2023 (معدل) private void uploadvideo(final String pdfname, Uri pdffile){ InputStream iStream = null; try { iStream = getContentResolver().openInputStream(pdffile); final byte[] inputData = getBytes(iStream); String oo=String.valueOf(inputData); Log.d("finalert",oo); VolleyMultipartRequest volleyMultipartRequest = new VolleyMultipartRequest(Request.Method.POST, URLphp, new Response.Listener<NetworkResponse>() { @Override public void onResponse(NetworkResponse response) { progressDialog.dismiss(); Log.d("ressssssoo",new String(response.data)); Toast.makeText(uploadved.this,new String(response.data), Toast.LENGTH_SHORT).show(); String tt=new String(response.data); if (tt=="منشورك موجود الان بالعامة شكرا لتفاعلك معنا"){ //startActivity(new Intent(uploadved.this,watchervedio.class)); Toast.makeText(uploadved.this, "yes", Toast.LENGTH_SHORT).show(); } rQueue.getCache().clear(); try { JSONObject jsonObject = new JSONObject(new String(response.data)); //Toast.makeText(uploadved.this, response.toString(), Toast.LENGTH_SHORT).show(); } catch (JSONException e) { Toast.makeText(uploadved.this, "", Toast.LENGTH_SHORT).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show(); } }) { /* * If you want to add more parameters with the image * you can do it here * here we have only one parameter with the image * which is tags * */ @Override protected Map<String,String> getParams() throws AuthFailureError { Map<String,String> params = new HashMap<>(); params.put("***", shall.getInstance(uploadved.this).getuserShow()); params.put("****", shall.getInstance(uploadved.this).getimage()); params.put("***", shall.getInstance(uploadved.this).getid()); params.put("***",enwanvido); return params; } /* *pass files using below method * */ @Override protected Map<String, DataPart> getByteData() { Map<String, DataPart> params = new HashMap<>(); params.put("***", new DataPart(pdfname ,inputData)); Log.d("testerget work","workingpartdata"); return params; } }; volleyMultipartRequest.setRetryPolicy(new DefaultRetryPolicy( 0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); rQueue = Volley.newRequestQueue(uploadved.this); rQueue.add(volleyMultipartRequest); } catch (FileNotFoundException e) { Toast.makeText(this, "لم يتم التعرف على الملف ", Toast.LENGTH_SHORT).show(); } catch (IOException e) { Toast.makeText(this, "هناك مشكلة بالانترنت ", Toast.LENGTH_SHORT).show(); } } public byte[] getBytes(InputStream inputStream) throws IOException { ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int len = 0; int fileSize = inputStream.read(); long uploadedBytes = 0; while ((len = inputStream.read(buffer)) != -1) { byteBuffer.write(buffer, 0, len); } return byteBuffer.toByteArray(); } تم التعديل في 1 يونيو 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 Mustafa Suleiman نشر 1 يونيو 2023 أرسل تقرير نشر 1 يونيو 2023 1- أولاً عليك بإضافة متغير للتتبع وعرض تقدم التحميل في النافذة الحالية، ولنفترض أن المتغير يسمى progressBar. 2- بعد ذلك في الدالة uploadvideo(), بعد السطر: iStream = getContentResolver().openInputStream(pdffile);، قم بإضافة الكود التالي: int fileLength = iStream.available(); وهذا سيحسب حجم الملف المراد تحميله. 3- في داخل الحلقة while في دالة getBytes(), بعد السطر byteBuffer.write(buffer, 0, len);، قم بإضافة الكود التالي: uploadedBytes += len; int progress = (int) ((uploadedBytes * 100) / fileLength); updateProgressBar(progress); وهو يحسب حجم البيانات المحملة حتى الآن ويحسب التقدم بنسبة مئوية، وتستدعى الدالة updateProgressBar() لتحديث قيمة progress bar بناءً على التقدم. 4- إضافة الدالة updateProgressBar() في النشاط الحالي (activity) لتحديث قيمة progress bar: private void updateProgressBar(int progress) { progressBar.setProgress(progress); } 5- تعديل المكان المناسب في الكود لإنشاء وعرض progress bar، وتستطيع إضافته في أي مكان ترغب فيه. مثلاً ، إضافة الكود التالي في بداية uploadvideo(): progressBar = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 20); progressBar.setLayoutParams(params); progressBar.setProgress(0); progressBar.setMax(100); layout.addView(progressBar); حيث layout هو عنصر من واجهة المستخدم يحتوي على العناصر التي تظهر فيها progress bar، وبإمكانك استبدال layout بعنصر آخر في واجهة المستخدم الخاصة بك. وعليك استيراد المكتبات اللازمة وتعديل الأسماء المطلوبة وفقًا لما تريده في الكود. 1 اقتباس
0 Drive Man نشر 4 يونيو 2023 الكاتب أرسل تقرير نشر 4 يونيو 2023 بتاريخ On 2/6/2023 at 01:38 قال Mustafa Suleiman: progressBar = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 20); progressBar.setLayoutParams(params); progressBar.setProgress(0); progressBar.setMax(100); layout.addView(progressBar); مش فاهم النقطة الاخيرة دى اقتباس
0 عبدالباسط ابراهيم نشر 4 يونيو 2023 أرسل تقرير نشر 4 يونيو 2023 بتاريخ 11 ساعة قال Drive Man: مش فاهم النقطة الاخيرة دى هذا الكود ينشئ شريط تقدم (progress bar) في تطبيق Android كالتالي السطر الأول في الكود يقوم بإنشاء ProgressBar object جديد باستخدام ال constructor الذي يأخذ ثلاثة مدخلات: Context object: وهو العنصر الذي يحتوي على الإطار الزمني للتطبيق والذي يسمح باستخدام موارد النظام. AttributeSet object: وهو معيار إدخال يحتوي على السمات الخاصة بالعنصر. في هذه الحالة ، يتم تمرير null. ProgressBar style: وهو النمط الذي يستخدم لتحديد شكل الشريط. في هذه الحالة يتم استخدام النمط progressBarStyleHorizontal لتحديد شكل الشريط الأفقي. السطر الثاني في الكود يقوم بإنشاء LinearLayout.LayoutParams object جديد وتعيين القيم اللازمة لعرض وارتفاع الشريط. يتم تعيين قيمة العرض إلى MATCH_PARENT وهي تعني أن الشريط سوف يأخذ عرضًا مماثلًا لعرض عنصر الأب الذي يحتوي عليه. ويتم تعيين الارتفاع إلى 20dp، ويتم تمرير هذه القيم إلى الشريط باستخدام setLayoutParams() method. السطر الثالث في الكود يقوم بتعيين القيمة الافتراضية للشريط باستخدام setProgress() method. يتم تعيين القيمة الحالية للشريط إلى الصفر في هذه الحالة. السطر الرابع في الكود يقوم بتعيين الحد الأقصى للشريط باستخدام setMax() method. يتم تحديد الحد الأقصى للشريط إلى 100 في هذه الحالة. السطر الخامس في الكود يقوم بإضافة الشريط إلى الـ layout الخاص به باستخدام addView() method. يتم تمرير الشريط الذي تم إنشاؤه في السطر الأول إلى الـ layout باستخدام هذا الـ method. 1 اقتباس
السؤال
Drive Man
تعديل عنوان السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.