edi233
edi233

Reputation: 3031

Add progress bar to image view in code in android

I want to add progress bar in the middle of my image view. All components I need to add in code. This is code:

    ReloadableImageView imageView = null;   

    LayoutInflater inflater = getActivity().getLayoutInflater();
    for(PageInfo info: pagesInfo){
        if(!info.isVisible())
            continue;
        info.setThumbnail(path + "/" + info.getPageNum() + ".jpg");
        inflater.inflate(R.layout.cell, null);  
        imageView = new ReloadableImageView(getActivity());

            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                                                                        LinearLayout.LayoutParams.WRAP_CONTENT);
            lp.setMargins(10, 10, 10, 10);
            imageView.setLayoutParams(lp);

            imageView.setOnClickListener(clickListener);
            imageView.setId(info.getPageNum());  
            imageView.setBlur(info.requiresLogin());
            imageView.setImagePath(info.getThumbnail());
            views.append(info.getPageNum(), imageView);
            mainLayout.addView(imageView);  
        }  

How can I add progress bar to my image view in code? "mainLayout" is LinearLayout.

Edit:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@android:color/transparent" >

    <HorizontalScrollView
        android:id="@+id/horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:background="#80000000" 
        >

        <LinearLayout
            android:id="@+id/_linearLayout"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:orientation="horizontal" >
        </LinearLayout>

    </HorizontalScrollView>

               <ProgressBar
                   android:id="@+id/progressBar1"
                   style="?android:attr/progressBarStyleLarge"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_alignParentBottom="true"
                   android:layout_centerHorizontal="true"
                   android:visibility="visible" />

</RelativeLayout>

Upvotes: 2

Views: 6442

Answers (1)

Misha Bhardwaj
Misha Bhardwaj

Reputation: 1387

Use RelativeLayout for this purpose. After that you can make alignment adjustments to place progressbar above ImageView.

Besides, If you are adding ImageView dynamically, add progress bar dynamically too.

Below is a code snippet which is setting the progress bar above ImageView with center alignment:

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

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/image" />

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true"/>
</RelativeLayout>

Upvotes: 4

Related Questions