Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Progress bar on ImageView

I am developing an app in which user will take Picture from camera and display it on preview screen having image view.

**CameraCapture.java**

class ButtonClickHandler implements View.OnClickListener 
{
    public void onClick( View view ){
        myVib.vibrate(50);
        startCameraActivity();
    }
}

protected void startCameraActivity()
{
    File filenew = new File( _path );
    Uri outputFileUri = Uri.fromFile( filenew );

    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
    intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    startActivityForResult( intent, 0 );
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{   
    switch( resultCode )
    {
        case 0:
            break;

        case -1:
            //pictaken++;

            onPhotoTaken();

            break;
    }
}

protected void onPhotoTaken()
{
    //pictaken=true;

    Intent i = new Intent(CameraCapture.this,Preview.class);
    startActivity(i);
}

In my Preview class the captured picture is displayed on ImageView

**Preview.java**

File imgFile = new File("/sdcard/DCIM/Camera/test.jpg");
if(imgFile.exists()){

    // Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.image);
    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
    Matrix mat = new Matrix();
    String degree="90";
    mat.postRotate(Integer.parseInt(degree));
    Bitmap bMapRotate = Bitmap.createBitmap(myBitmap, 0, 0,myBitmap.getWidth(),myBitmap.getHeight(), mat, true);
    myImage.setImageBitmap(bMapRotate);
    //myImage.setImageBitmap(myBitmap);

}
_image = ( ImageView ) findViewById( R.id.image );

Is there is any way to show progress bar on the ImageView till it load the Captured image from SD card. Thnx in advance :)

like image 527
Bhaskar Gyan Vardhan Avatar asked Sep 09 '12 18:09

Bhaskar Gyan Vardhan


People also ask

What is Progress bar in Android?

Android ProgressBar is a graphical view indicator that shows some progress. Android progress bar displays a bar representing the completing of the task. Progress bar in android is useful since it gives the user an idea of time to finish its task.


1 Answers

Put your ImageView and Progressbar in a RelativeLayout. For your ProgressBar, use:

android:layout_centerInParent="true"

Which will center it in the RelativeLayout, meaning over the ImageView. You might also want to hide the ProgressBar when the image has loaded:

progressBar.setVisibility(View.Gone)

when the image has been loaded.

Sample code:

 <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

         <ImageView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"/>

        <ProgressBar
            style="?android:attr/progressBarStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:visibility="visible"/>

    </RelativeLayout>
like image 102
Lucas Arrefelt Avatar answered Oct 06 '22 21:10

Lucas Arrefelt