android - studio - Superponer una actividad en otra actividad O superponer una vista sobre otra
superponer imagenes android studio (4)
En archivo de manifiesto, declare la actividad de secondactividad de esta manera. android: theme = "@ android: style / Theme.Dialog". Luego simplemente llame a la secondactivity desde la primera actividad desde su código.
<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>
Segunda actividad xml file.you puede diseñar como su deseo pero para referencia lo he publicado. El concepto clave está en archivo manifiesto (es decir) cómo definir su secondactivity en manifiesto
<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>
Tengo 2 clases, FirstActivity y SecondActivity.
Primera actividad
Intent intent=new Intent(getApplicationContext(),SecondActivity.class);
startActivity(intent);
¿Es posible que SecondActivity se superponga a FirstActivity? es decir. FirstActivity se atenúa, SecondActivity se muestra encima de FirstActivity.
Si no es posible para 2 actividades diferentes, ¿es posible hacer una superposición para 2 vistas en la misma actividad? Espero que usar el diálogo no sea la única opción.
1-Tome una captura de pantalla de la primera actividad.
2- (Opcional) Oscurece, tinte o difumina la captura de pantalla.
3-Luego, llame a la segunda actividad y use la primera captura de pantalla de la actividad como fondo para la segunda actividad.
Le sugiero que configure su segunda actividad como un diálogo, lo que atenuará el fondo. Aquí hay un tutorial que podría ser útil:
http://developer.android.com/guide/topics/ui/dialogs.html
http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application
O simplemente puede establecer el tema en el manifiesto como un diálogo para su SecondActivity.
Si no desea hacer un diálogo, puede superponer vistas utilizando un diseño relativo.
<?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>
El primer LinearLayout (id / content) es su diseño base donde iría su contenido normal.
El segundo LinearLayout (id / overlay) es su diseño de superposición que le gustaría mostrar sobre la parte superior del diseño base. El color de fondo le dará ese fondo desvanecido, y puede agregar lo que quiera a ese diseño para hacer su superposición. Para mostrar la superposición, simplemente cambie su visibilidad de gone
a visible
.