我有2个类,FirstActivity和SecondActivity。
第一项活动
Intent intent=new Intent(getApplicationContext(),SecondActivity.class);
startActivity(intent);
SecondActivity是否可以覆盖FirstActivity?即。 FirstActivity变暗,SecondActivity显示在FirstActivity之上。
如果不能进行2项不同的活动,是否可以在同一活动中对2个视图进行叠加?我希望使用对话框不是唯一的选择。
答案 0 :(得分:24)
我建议您将第二个活动设置为对话框 - 这将使背景变暗。这是一个可能有用的教程:
http://developer.android.com/guide/topics/ui/dialogs.html
http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application
或者您可以将清单中的主题设置为SecondActivity的对话框。
答案 1 :(得分:21)
如果您不想进行对话,可以使用相对布局覆盖视图。
<?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(内容/内容)是您的常规内容所在的基本布局。
第二个LinearLayout(id / overlay)是您希望在基本布局顶部显示的叠加布局。背景颜色将为您提供淡出的背景,您可以添加任何您想要的布局来制作叠加层。要显示叠加层,只需将其可见性从gone
更改为visible
。
答案 2 :(得分:5)
<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>
<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>
答案 3 :(得分:-13)
1 - 截取第一个活动的屏幕截图。
2-(可选)使屏幕截图变暗,着色或模糊。
3 - 然后调用第二个活动并使用第一个活动屏幕截图作为第二个活动的背景。