Я новичок в android и пробую одно простое приложение для загрузки изображений. Я могу сделать все загрузки с помощью asynctask и он работает нормально. В настоящее время я показываю простой диалог прогресса, и все в порядке, но я хочу показать процент с индикатором выполнения. Я использую asynctask для загрузки и не получаю идею показать процент. Кто-нибудь может помочь мне сделать это?
Мой код, как показано ниже
public void UploadImageToServer(){
FixBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byteArray = byteArrayOutputStream.toByteArray();
ConvertImage = Base64.encodeToString(byteArray, Base64.DEFAULT);
class AsyncTaskUploadClass extends AsyncTask<Void,Void,String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = ProgressDialog.show(MainActivity.this,"Image is Uploading","Please Wait",false,false);
}
@Override
protected void onPostExecute(String string1) {
super.onPostExecute(string1);
progressDialog.dismiss();
Toast.makeText(MainActivity.this,string1,Toast.LENGTH_LONG).show();
}
@Override
protected String doInBackground(Void... params) {
ImageProcessClass imageProcessClass = new ImageProcessClass();
HashMap<String,String> HashMapParams = new HashMap<String,String>();
HashMapParams.put(ImageTag, GetImageNameFromEditText);
HashMapParams.put(ImageName, ConvertImage);
String FinalData = imageProcessClass.ImageHttpRequest(URL, HashMapParams);
return FinalData;
}
}
AsyncTaskUploadClass AsyncTaskUploadClassOBJ = new AsyncTaskUploadClass();
AsyncTaskUploadClassOBJ.execute();
}
public class ImageProcessClass{
public String ImageHttpRequest(String requestURL,HashMap<String, String> PData) {
StringBuilder stringBuilder = new StringBuilder();
try {
url = new URL(requestURL);
httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setReadTimeout(20000);
httpURLConnection.setConnectTimeout(20000);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
outputStream = httpURLConnection.getOutputStream();
bufferedWriter = new BufferedWriter(
new OutputStreamWriter(outputStream, "UTF-8"));
bufferedWriter.write(bufferedWriterDataFN(PData));
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
RC = httpURLConnection.getResponseCode();
if (RC == HttpsURLConnection.HTTP_OK) {
bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
stringBuilder = new StringBuilder();
String RC2;
while ((RC2 = bufferedReader.readLine()) != null){
stringBuilder.append(RC2);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
private String bufferedWriterDataFN(HashMap<String, String> HashMapParams) throws UnsupportedEncodingException {
stringBuilder = new StringBuilder();
for (Map.Entry<String, String> KEY : HashMapParams.entrySet()) {
if (check)
check = false;
else
stringBuilder.append("&");
stringBuilder.append(URLEncoder.encode(KEY.getKey(), "UTF-8"));
stringBuilder.append("=");
stringBuilder.append(URLEncoder.encode(KEY.getValue(), "UTF-8"));
}
return stringBuilder.toString();
}
}
Спасибо!