2011-10-24 9 views
11

画面の中央にプログレスバーを表示しようとしていますが、中央には表示されません。以下は私のレイアウトです。私はここで間違って何をしていますか?基本的に、画像とアンドロイドのギャラリーウィジェットを上に表示するレイアウトです。ユーザーがサムネイルをクリックすると、Webから画像をロードしていて、画像がロードされている間に進捗ダイアログを表示したいと思います。画面中央にアンドロイドプログレスバーを設定する方法

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:id="@+id/container" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:orientation="vertical"> 

    <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:gravity="top" /> 

    <ImageView android:id="@+id/actualimage" android:scaleType="fitCenter" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:visibility="gone" android:layout_gravity="center_vertical|center_horizontal|center" 
     android:adjustViewBounds="true" /> 

    <ProgressBar android:id="@+android:id/progress_small1" 
     android:layout_height="wrap_content" android:layout_width="wrap_content" 
     android:visibility="visible" android:layout_gravity="center_vertical|center_horizontal" 
     android:gravity="center_vertical|center_horizontal" /> 

</LinearLayout> 

答えて

33

ブラッドリーUffnerが提供する答えに試してみる必要がありますあなたのプログレスバー自体を利用する方法を探している場合LinearLayoutはビューを垂直に積み重ねます。現在、あなたのImageViewProgressBarは、中央の位置に向かって戦っています。このような状況では、私は間違いなくRelativeLayoutをお勧めします。

RelativeLayoutには、android:layout_centerInParent="true"を使用します。

+1

または、Progr (スタイルの必要性/好みに応じて) –

+2

相対レイアウトは私のためのトリックでした。ありがとうございました – Chandu

2

私はあなたがイメージがギャラリーのためにロードされるまでの進行状況インジケータを表示しようとしていると考えているので、たぶん、あなたは、進行状況ダイアログのために行く必要があるプログレスバーに1

+0

。あなたのコメントについて –

+0

感謝。思想私はlayout_weightを追加しようとしたものに更新します。いくつかのために理由は、プログレスバーのサイズを醜いピクセル化されたホイールスピンに広げた理由です。レイアウト_ウェイトは、ビューの中で配置されるスクリーンスペースの割合が、配置よりもずっと高くなっています。 – Chandu

3

Do android:gravity="center"LinearLayoutにあります。あなたはProgressBar

+0

あなたのコメントありがとうございます。私はこれを試しましたが、AdMob adViewを表示してexepctedとして動作しないようにする必要がありました。 – Chandu

+0

これは、質問のタイトル – Thecave3

2

は以下を追加表示したいときgoneProgressBarから離れて他のすべての要素のandroid:visibilityを設定します。

android:layout_centerHorizontal="true" 
android:layout_centerVertical="true" 
0

私はこの質問に応答がある知っているが、ビュー/サブビューをレイアウトのパフォーマンスを考慮RelativeLayoutは高価です(2回通過する必要があります)。ビュー階層が複雑な場合は、相対レイアウトを選択するか、ビューに単純なビューだけがある場合は、線形レイアウト/フレームレイアウトを選択してください。

私の経験から、相対レイアウトのUIパフォーマンスは悪くなりました。すべてのレイアウトファイルを再作成してしまいました。(私の場合はProgressViewをビューの中心に正確に配置するサンプルです。この1にアンドロセルバに同意しているつもり。進行状況ダイアログが簡単で動作するようにBAロットに起こっている

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" android:orientation="vertical"> 
    <android.support.v7.widget.AppCompatImageView android:layout_gravity="center" android:layout_width="match_parent" 
     android:layout_height="0dp" app:srcCompat="@drawable/check" android:scaleType="fitCenter" 
     android:layout_weight=".7"/> 
    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" android:layout_weight=".3"> 
     <ProgressBar android:layout_gravity="center|center_horizontal" android:indeterminateTint="@color/textColorPrimary" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:indeterminate="true"/> 
    </FrameLayout> 

</LinearLayout> 
関連する問題