Question

in my app many sounds . its run by Internet by url >>

I want to set progress Bar in my app ?

How I do it ?

this is sound Activity:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@drawable/background"
     android:orientation="vertical"
     tools:ignore="ScrollViewSize" >

     <MediaController
         android:id="@+id/mediaController1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="66dp"
         android:layout_marginRight="14dp" >
     </MediaController>

     <ScrollView
         android:id="@+id/scrollView1"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_alignTop="@+id/play"
         android:layout_centerHorizontal="true"
         tools:ignore="NotSibling" >

         <RelativeLayout
             android:layout_width="match_parent"
             android:layout_height="316dp"
             android:orientation="vertical" >

             <ImageView
                 android:id="@+id/imageView1"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentRight="true"
                 android:layout_alignParentTop="true"
                 android:paddingBottom="90dp"
                 android:paddingTop="50dp"
                 android:src="@drawable/logo5"
                 tools:ignore="ContentDescription" />

             <ImageButton
                 android:id="@+id/play"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentBottom="true"
                 android:layout_centerHorizontal="true"
                 android:src="@drawable/ic_action_play"
                 tools:ignore="ContentDescription,ObsoleteLayoutParam" />

             <TextView
                 android:id="@+id/textView1"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentTop="true"
                 android:layout_centerHorizontal="true"
                 android:layout_marginTop="25dp"
                 android:text="@string/song1"
                 android:textAppearance="?android:attr/textAppearanceLarge" />

             <ImageButton
                 android:id="@+id/dawnload"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentBottom="true"
                 android:layout_toRightOf="@+id/play"
                 android:src="@drawable/ic_action_download"
                 tools:ignore="ContentDescription,ObsoleteLayoutParam" />

             <ImageButton
                 android:id="@+id/sahere"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentBottom="true"
                 android:layout_toLeftOf="@+id/play"
                 android:src="@drawable/ic_action_share"
                 tools:ignore="ContentDescription,ObsoleteLayoutParam" />
        </RelativeLayout>
    </ScrollView>
</RelativeLayout>

also this is sound class

package com.Helmi_wa_ana;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.net.Uri;
import android.os.Bundle; 
import android.view.View;
import android.view.View.OnClickListener; 
import android.widget.ImageButton;

public class Sound1 extends Activity {

    @Override protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sound1);
        final MediaPlayer mediaController1 = new MediaPlayer();
        try {
            mediaController1.setDataSource("http://alshbab90.softsmedia.com/helmi_1.mp3");
        } catch (IllegalArgumentException e1) {
            e1.printStackTrace();
        } catch (IllegalStateException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }

        try {
            mediaController1.prepare();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        ImageButton play = (ImageButton) findViewById(R.id.play);
        play.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (mediaController1.isPlaying()) {
                    mediaController1.pause();
                } else {
                    mediaController1.start();
                }
            }
        });

        ImageButton sahere = (ImageButton) findViewById(R.id.sahere);
        sahere.setOnClickListener(new OnClickListener() {
            public void onClick(View v)
            {
                Intent sharingIntent = new Intent(Intent.ACTION_SEND);
                sharingIntent.setType("text/plain");
                sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, getResources().getString(R.string.share1));
                startActivity(Intent.createChooser(sharingIntent,"?????? ???????? ?????? :"));
            }
        });

        ImageButton dawnolad = (ImageButton) findViewById(R.id.dawnload);
        dawnolad.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
            }

            protected InputStream openUrl() {
                String url = "http://alshbab90.softsmedia.com/helmi_1.mp3";
                InputStream stream = null;
                HttpURLConnection connection = null;
                try {
                    connection = (HttpURLConnection)new URL(url).openConnection();
                } catch (MalformedURLException e1) {
                    e1.printStackTrace();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                try {
                    if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                        stream = connection.getInputStream();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return stream;

            }
        });
    }
}
Was it helpful?

Solution 2

Hi please try the below reference link for Progressbar tutorials.Hope it should helpful for you. You can download the sample source code and try it in your application.

Progress Bar

Progress bar for downloading a file

Android Progress Bar Example

Hi here i added the sample download file from server code. Please check and let me know.

    import java.io.InputStream;
    import java.net.URL;
    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import java.io.BufferedInputStream;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.net.URLConnection; 
    import android.app.Dialog;
    import android.graphics.drawable.Drawable;
    import android.os.AsyncTask;
    import android.os.Environment;
    import android.widget.ImageView;

    public class download extends Activity {

        // button to show progress dialog
        Button btnShowProgress;

        // Progress Dialog
        private ProgressDialog pDialog;
        ImageView my_image;
        // Progress dialog type (0 - for Horizontal progress bar)
        public static final int progress_bar_type = 0; 

        // File url to download
        private static String file_url = "http://alshbab90.softsmedia.com/helmi_1.mp3";

        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // show progress bar button
        btnShowProgress = (Button) findViewById(R.id.btnProgressBar);
        // Image view to show image after downloading
        my_image = (ImageView) findViewById(R.id.my_image);
        /**
         * Show Progress bar click event
         * */
          btnShowProgress.setOnClickListener(new View.OnClickListener()   { 

            @Override
            public void onClick(View v) {
            // starting new Async Task
            new DownloadFileFromURL().execute(file_url);
            }
        });
        }

        /**
         * Showing Dialog
         * */
        @Override
        protected Dialog onCreateDialog(int id) {
        switch (id) {
        case progress_bar_type: // we set this to 0
            pDialog = new ProgressDialog(this);
            pDialog.setMessage("Downloading file. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setMax(100);
            pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            pDialog.setCancelable(true);
            pDialog.show();
            return pDialog;
        default:
            return null;
        }
        }

        /**
         * Background Async Task to download file
         * */
        class DownloadFileFromURL extends AsyncTask<String, String, String> {

        /**
         * Before starting background thread
         * Show Progress Bar Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            showDialog(progress_bar_type);
        }

        /**
         * Downloading file in background thread
         * */
        @Override
        protected String doInBackground(String... f_url) {
            int count;
            try {
            URL url = new URL(f_url[0]);
            URLConnection conection = url.openConnection();
            conection.connect();
            // this will be useful so that you can show a tipical 0-100% progress bar
            int lenghtOfFile = conection.getContentLength();

            // download the file
            InputStream input = new BufferedInputStream(url.openStream(), 8192);

            // Output stream
            OutputStream output = new FileOutputStream("/sdcard/helmi_1.mp3");

            byte data[] = new byte[1024];

            long total = 0;

            while ((count = input.read(data)) != -1) {
                total += count;
                // publishing the progress....
                // After this onProgressUpdate will be called
                publishProgress(""+(int)((total*100)/lenghtOfFile));

                // writing data to file
                output.write(data, 0, count);
            }

            // flushing output
            output.flush();

            // closing streams
            output.close();
            input.close();

            } catch (Exception e) {
            Log.e("Error: ", e.getMessage());
            }

            return null;
        }

        /**
         * Updating progress bar
         * */
        protected void onProgressUpdate(String... progress) {
            // setting progress percentage
            pDialog.setProgress(Integer.parseInt(progress[0]));
           }

        /**
         * After completing background task
         * Dismiss the progress dialog
         * **/
        @Override
        protected void onPostExecute(String file_url) {
            // dismiss the dialog after the file was downloaded
             dismissDialog(progress_bar_type);

             // Displaying downloaded image into image view
             // Reading image path from sdcard
               String imagePath =  Environment.getExternalStorageDirectory().toString() + "/helmi_1.mp3";
             // setting downloaded into image view
            my_image.setImageDrawable(Drawable.createFromPath(imagePath));
        }

        }
    }

Create main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<!-- Download Button -->
<Button android:id="@+id/btnProgressBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Download File with Progress Bar"
    android:layout_marginTop="50dip"/>

<!-- Image view to show image after downloading -->
<ImageView android:id="@+id/my_image"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

</LinearLayout>

Need to add AndroidManifest.xml permission as,

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Hope it should helpful for you. Please try and let me know. Thanks

OTHER TIPS

Go through the links below which will guide you on how to implement PorgressBar in Android.

Android Progress Bar Tutorial
Infinite Progress Bar
Progress Dialog Example

Hope this is sufficient for you.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top