Androide – superponer imágenes (jugar a las cartas)
Estoy tratando de hacer que las cartas de juego en mi juego se superponen de tal manera que sólo la primera mitad de una tarjeta se ve y la otra mitad está cubierta por la siguiente tarjeta de juego. La única tarjeta que debe estar completamente visible será la última / derecha tarjeta.
He utilizado el siguiente código con framelayout y relativelayout sin éxito. ¿Alguien puede ofrecer algunas sugerencias?
- ¿Cómo puedo evitar que mi TextView se solape?
- Cómo hacer una barra de progreso mostrar en la parte superior de un botón en android
- Cómo inflar RelativeLayout de XML
- RelativeLayout - Desplazamiento hacia abajo
- Alinear el botón a la parte inferior de la pantalla
public int shouldShow(int numberOfCards, int card, int id) { if(card == -1) hide(id); else { findViewById(id).setBackgroundDrawable(deckimages[card]); //findViewById(id).offsetLeftAndRight(findViewById(id).getWidth()* numberOfCards / 2); show(id); //findViewById(id).setPadding(findViewById(id).getWidth()* numberOfCards / 2, 0,0,0); return numberOfCards+1; } return numberOfCards; }
He intentado usar el acolchado y los métodos de offset ninguno de los cuales están trabajando para mí. Pero también he notado que los métodos getwidth () y getmeasuredwidth () están devolviendo 0.
Cualquier sugerencia sobre qué disposición debo utilizar y por qué las funciones getwidth arent trabajo?
El código xml está por debajo … no habría más imágenes que esto, pero esto es lo que estaba probando
<RelativeLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/RelativeLayout1"> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> <ImageView android:id="@+id/imageView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> </RelativeLayout>
- Usando un RelativeLayout para dividir verticalmente dos fragmentos uniformemente
- Android RelativeLayout: cómo colocar una vista debajo de otra vista cuando ambas no están en el mismo contenedor
- El pie de página sube cuando se muestra el teclado
- ¿Es un RelativeLayout más caro que un LinearLayout?
- Android - ¿Cómo se especifica el peso mediante programación para un RelativeLayout?
- RelativeLayout y ViewStub inflación
- Añadir dinámicamente una vista al diseño de la actividad
- ¿Cómo obtengo el siguiente resultado utilizando RelativeLayout?
Yo estaba atrapado en esto desde hace siglos y después de 4 horas jugando con el código y el google. Finalmente me di cuenta de la solución y es bastante simple.
Todo lo que tienes que hacer es alinear la siguiente carta a la parte superior e izquierda de la anterior. Esto hará que la segunda tarjeta se colocará en la parte superior de la tarjeta antes. A continuación, establezca un leftMargin
para "empujar" la tarjeta en la parte superior hacia la derecha, creando el efecto de superposición parcial.
Aquí está mi código (hecho mediante programación):
for(int i=0; i<hand.size();i++){ int c = hand.get(i).getCardResource(); ib = new ImageButton(this); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.ALIGN_TOP, i-1); params.addRule(RelativeLayout.ALIGN_LEFT,i-1); params.leftMargin= 40; ib.setImageResource(c); ib.setClickable(true); ib.setPadding( 3, 3, 3, 3); ib.setId(i); ib.setLayoutParams(params); ll.addView(ib); }
Puede proporcionar puntos de vista intencionalmente no coincidentes con el tamaño de la imagen y utilizar ScaleType de una vista de imagen: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html . Por ejemplo, android:scaleType="fitStart"
- Android Google Drive SDK – cómo mostrar la lista de archivos en la carpeta seleccionada
- Trabajos de fondo de Android para la sincronización con un servicio web