0

FrameLayout私は解決策を探していましたが、またはRelativeLayoutが使用されている場所でのみ解決策を見つけ、を使用してLinearLayoutいます。

私がやろうとしているのは、ページに何かが読み込まれる前に「お待ちください」という画像を前景に表示することです。そして、その画像を中央に配置し、他のページ要素を移動させないようにしています...そのためには、前景に必要だと思いますよね?

どうすればこれを行うことができますか? 今私はこれを持っています:

<ImageView
    android:id="@+id/please_wait"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/please_wait"
    android:foregroundGravity="center|fill_horizontal" />

しかし、それは画像を中央に配置しておらず、前景に配置していません。

xml ファイル全体は次のとおりです。

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

<include android:id="@+id/header"
         layout="@layout/header"
         android:layout_height="wrap_content"
         android:layout_width="fill_parent"/>    

<ImageView
        android:id="@+id/please_wait"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/please_wait"
        android:foregroundGravity="center|fill_horizontal"
         />

<TextView
    android:id="@+id/problem_loading_prompt"    
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Getting the business(es) you are planning. They are stored in a database that is constantly backed up so you do not lose your work."
    />          

    <ListView
    android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:textSize="17sp"> 
    </ListView>

        <Button
    android:id="@+id/add_problem_ok"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/light_best_blue" 
    android:text="Plan a New Business"
    android:layout_marginTop ="15dp"    
    />  
</LinearLayout>

ありがとう!

4

3 に答える 3

2

「お待ちください」メッセージを表示するには、ダイアログを作成するのが最善の方法だと思います。ここ: http://developer.android.com/guide/topics/ui/dialogs.htmlダイアログを作成する方法についての良いチュートリアルがあります。カスタム ビューで AlertDialog を使用するか、ビューティー スピナーがあるため、ProgressDialog を使用できると思います。

xml からではなく Java コードから呼び出すダイアログなので、Dialog は質問に対する厳密な回答ではありませんが、あなたが望むものに近いと思います。

本当に xml でそのようなことをしたい場合は、そのようなことをするように設計されているため、FrameLayout を使用する必要があると思います。または、RelativeLayout を使用してみてください。

編集: これは、イメージで AlertDialog を作成するためのサンプル コードです。

Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom); 
dialog.show(); //this will show dialog 
dialog.dismiss(); //now dialog will disapear

そして、ここに custom.xml という名前の xml ファイルがあります。

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

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

</RelativeLayout>

もちろん、別のレイアウトを使用することもできます。

于 2012-09-05T19:17:00.020 に答える
1

このようなことを試してはいけません:

<RelativeLayout>

    <LinearLayout>
        <Your existing stuff />  
    </LinearLayout>

    <ImageView
        android:centerInParent="true" /> 

</RelativeLayout>

このようにして、今まで行っていたレイアウト全体を維持できRelativeLayout、画像をすべての上にうまく配置できます。もう必要ない場合はImageView、電話してください

imageView.setVisibility(View.INVISIBLE /*or View.GONE */);
于 2012-09-05T19:14:41.077 に答える
1

このようにしてみましたか?

<?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"
android:gravity="center" >                <--- like this

<ImageView
    android:id="@+id/please_wait"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:foregroundGravity="center|fill_horizontal"
    android:src="@drawable/arrow" />   

</LinearLayout>

わたしにはできる。

于 2012-09-05T19:19:33.470 に答える