Ver la Versión Completa : layout encima de otro.
manolazo
12/09/13, 01:00:59
Buenas.
Como se podria conseguir poner el típico layout de fin de pantalla y que por debajo aparezca la pantalla que has terminado?
Si lo hago con un layout y lanzo una nueva actividad una vez terminada la pantalla, esta taparia la anterior. Una idea aproximada es esta:
Un saludo.
mocelet
12/09/13, 09:40:31
Lo que hago en ese caso es tener un layout superpuesto en la misma actividad con fondo translúcido (el color que mejor venga, negro tal vez para que oscurezca, con un valor alpha de transparencia, p.ej. #AA000000).
No hace falta cambiar de actividad, simplemente mostrar el layout al finalizar la partida u ocultarlo.
Otra opción similar es usar un ViewStub, que te permite tener la definición de ese layout en un fichero independiente y cargarlo cuando vayas a mostrarlo.
Hacerlo como actividad independiente también es posible, aquí lo explican bien http://stackoverflow.com/questions/2176922/how-to-create-transparent-activity-in-android, aunque personalmente prefiero un layout superpuesto.
manolazo
12/09/13, 20:18:31
Hola, como muestras el layout al finalizar la partida?
Podria ser de la siguiente manera?
1. Creo el xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearfinpantalla1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1_finpantalla1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/nivel_completado"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageView1_finpantalla1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/boton_thumbsup2" />
.
.
.
2. Creo una clase extendiendo de un LinearLayout e inflar el xml: (esto creo que lo hago mal)
public class Finpantalla1 extends LinearLayout{
TextView text1, text2, text3;
public Finpantalla1(Context context) {
super(context);
LayoutInflater li = (LayoutInflater)getContext().getSystemService(Cont ext.LAYOUT_INFLATER_SERVICE);
li.inflate(R.layout.finpantalla1_layout, this, true);
text1 = (TextView)findViewById(R.id.textView5_finpantalla1 );
text2 = (TextView)findViewById(R.id.textView6_finpantalla1 );
text3 = (TextView)findViewById(R.id.textView7_finpantalla1 );
text1.setText("lo que sea");
text2.setText("hola que tal");
text3.setText("hola buenas");
}
}
3. Como añado la view personalizada a en la actividad principal? Esto no me sale:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout linearfin = (LinearLayout)findViewById(R.id.linearfinpantalla1 );
Finpantalla1 finpanta = new Finpantalla1(this);
linearfin.addView(finpanta);
Como digo no me sale, alguna ayuda?
mocelet
12/09/13, 20:37:20
La forma cutre-rápida: usa un RelativeLayout de base en la actividad del juego (con el LinearLayout no vas a poder poner nada encima), y al final, en el xml, defines el LinearLayout con los elementos del marcador. Ese layout y sus elementos lo dejas con el atributo visible a invisible, y cuando toque mostrarlo actualizas las variables y lo pones visible.
La forma elegante es usar un ViewStub, que viene a ser un "aquí me cargas tal fichero layout". Sigues necesitando un RelativeLayout de base o no podrás poner ninguna view adicional encima de lo demás. Y el layout del marcador ya lo defines en otro xml independiente. Como en el ejemplo: http://android-developers.blogspot.com.es/2009/03/android-layout-tricks-3-optimize-with.html
manolazo
12/09/13, 21:05:22
A ver si me entero.
Yo como tablero principal uso un LinearLayout de base. Dices usar un RelativeLayout en vez del linear . Dices que al final del Relative ponga el linear que yo tengo con todo y que los marcadores queden por encima sobreescribiendo todo pero con valores invisibles para una vez termine el juiego cambiarlo a visible ??
Claro con el Relative se sobreescribe todo ... .Voy a probarlo tambien a ver como sale.
No obstante. lo de inflar de un xml seria correcto para este caso? Es por probar varios metodos.
Que falla en el codigo que tengo puesto??
Un saludo.
manolazo
14/09/13, 02:55:52
Ya lo resolvi el otro dia tal y como me indicaste. Use los dos metodos y en ambos sale igual aunque es cierto que con ViewStub es bastante sencillo.
Un saludo.
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.