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?

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> 

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"

  • RelativeLayout dentro de LinearLayout?
  • Android RelativeLayout, espaciamiento igual?
  • ¿Cómo puedo configurar la imagen de fondo con picasso en el código
  • Cómo encontrar lo que está causando dependencias circulares en RelativeLayout
  • RelativeLayout no muestra todos los botones
  • Tener un EditText sobre un teclado suave con una vista GL en el fondo mediante programación
  • RelativaLayout TextView superposición
  • Match_parent propiedad para los niños en un RelativeLayout
  • Ajustar el ancho a la mitad de la pantalla
  • Cómo centrar una vista usando RelativeLayout?
  • ¿Por qué el título no está centrado en la barra de herramientas?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.