0

「ダイアログ」のようなアクティビティを作成したいのですが、これまでのところ2つの方法を知っています:

方法 1) Android ApiDemos では、次のようにアクティビティに属性を追加することで実装されます。

android:theme="@android:style/Theme.Dialog">

結果は次のとおりです。新しいアクティビティが既存のアクティビティの上に表示されます。これが私が望むものです。

方法 2)setTheme(android.R.style.Theme_Dialog)メソッドで呼び出そうとするActivity.onCreate(Bundle)と、新しいアクティビティも表示されますが、背景はすべて黒です。これは私が望むものではありません。コードは次のとおりです。

            super.onCreate(savedInstanceState);
            setTheme(android.R.style.Theme_Dialog);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.selecte_date);

Java コードを記述して効果を実装する方法を誰か教えてもらえますか?

4

1 に答える 1

0

最も簡単な方法は、既存のレイアウトのオーバーレイである xml に 2 番目のレイアウトを追加することです。次に、オーバーレイをアクティビティで表示するように設定できます。したがって、1 つのアクティビティで複数のビューを取得できます。

<?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"
    android:background="@android:color/transparent"  >
<LinearLayout

    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:background="@android:color/transparent">

    <ImageView
        android:id="@+id/icon" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/>

    <TextView 
        android:id="@+id/title"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />

</LinearLayout>
<LinearLayout
    android:layout_alignParentTop="true"
    android:id="@+id/overlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/translucent_black"
    android:visibility="false" >
</LinearLayout>
</RelativeLayout>
于 2012-11-06T10:25:03.097 に答える