web-dev-qa-db-ja.com

アクティビティを別のアクティビティにオーバーレイするORビューを別のアクティビティにオーバーレイする

FirstActivityとSecondActivityの2つのクラスがあります。

最初の活動

Intent intent=new Intent(getApplicationContext(),SecondActivity.class);
startActivity(intent);

SecondActivityをFirstActivityにオーバーレイすることはできますか?すなわち。 FirstActivityは淡色表示になり、SecondActivityはFirstActivityの上に表示されます。

2つの異なるアクティビティが不可能な場合、同じアクティビティの2つのビューのオーバーレイを実行できますか?ダイアログを使用することが唯一のオプションではないことを願っています。

26
newbie

2番目のアクティビティをダイアログとして設定することをお勧めします。これにより、背景が暗くなります。役立つチュートリアルを次に示します。

http://developer.Android.com/guide/topics/ui/dialogs.html

http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-Android-application

または、SecondActivityのダイアログとしてマニフェストでテーマを設定するだけです。

24
Alan Moore

ダイアログを実行したくない場合は、相対レイアウトを使用してビューをオーバーレイできます。

<?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" >

    <LinearLayout Android:id="@+id/content"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent">
        <TextView Android:id="@+id/text"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:text="some content"
            Android:textSize="70dp"/>
    </LinearLayout>

    <LinearLayout Android:id="@+id/overlay"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:background="#99000000"
            Android:clickable="true"
        Android:visibility="gone">
        <EditText Android:id="@+id/edittext"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:layout_margin="50dp" />
    </LinearLayout>

</RelativeLayout>

最初のLinearLayout(id/content)は、通常のコンテンツが配置される基本レイアウトです。

2番目のLinearLayout(id/overlay)は、ベースレイアウトの上に表示するオーバーレイレイアウトです。背景色を使用すると、背景がフェードアウトし、オーバーレイに必要なものをレイアウトに追加できます。オーバーレイを表示するには、可視性をgoneからvisibleに変更するだけです。

22
ImR

マニフェストファイルで、このようなsecondactivityアクティビティを宣言します。 Android:theme = "@ Android:style/Theme.Dialog"。その後、コードのfirstactivityからsecondactivityを呼び出します。

 <activity
                Android:name=".FirstActivity"
                Android:label="@string/title_activity_first" >
                <intent-filter>
                    <action Android:name="Android.intent.action.MAIN" />

                    <category Android:name="Android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                Android:name=".SecondActivity"
                Android:label="@string/title_activity_second" 
                Android:theme="@Android:style/Theme.Dialog"
                >
                <intent-filter>
                    <action Android:name="transparent.text.SECONDACTIVITY"/>

                    <category Android:name="Android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>

Second Activity xmlファイル。あなたはあなたの希望通りに設計できますが、参考のためにこれを投稿しました。重要な概念はmanifestfile(すなわち)

    <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" >

        <TextView
            Android:id="@+id/textView1"
            Android:layout_width="wrap_content"
            Android:layout_height="192dp"
            Android:background="#aabbcc"
            Android:text="Sybrant has provided Takoma with a great team which helped us from the beginning to the final stage of our product, to our fullest satisfaction. We have been able to deliver a high quality of eLearning products to our corporate customers like Nissan with Sybrant’s support”"
            tools:context=".FirstActivity" />

        <Button
            Android:id="@+id/button1"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignBottom="@+id/textView1"
            Android:layout_alignParentLeft="true"
            Android:layout_marginBottom="43dp"
            Android:layout_marginLeft="80dp"
            Android:text="Button" />

        <TextView
            Android:id="@+id/textView2"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignRight="@+id/button1"
            Android:layout_below="@+id/textView1"
            Android:layout_marginRight="42dp"
            Android:layout_marginTop="80dp"
            Android:text="TextView" />

    </RelativeLayout>
6
Ruban