Superposición de texto sobre imageview en framelayout mediante programación – Android

Estoy intentando implementar un textview sobre una imagen en un framelayout en el centro y la parte inferior del diseño como se ve aquí:

http://developer.android.com/resources/articles/layout-tricks-merge.html

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="center" android:src="@drawable/golden_gate" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="20dip" android:layout_gravity="center_horizontal|bottom" android:padding="12dip" android:background="#AA000000" android:textColor="#ffffffff" android:text="Golden Gate" /> </FrameLayout> 

Estoy intentando implementar esto programmatically pero sin la suerte. Consigo siempre el textview en la esquina izquierda superior. ¿Puede alguien ayudar? Aquí está mi código:

 FrameLayout frameLay = new FrameLayout(MainScreen.this); LayoutParams layoutParamsFrame = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); frameLay.setLayoutParams(layoutParamsFrame); LinearLayout.LayoutParams layoutParamsImage= new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); ImageView imageView= new ImageView(MainScreen.this); imageView.setImageResource(R.drawable.movie); imageView.setLayoutParams(layoutParamsImage); TextView theText=new TextView(MainScreen.this); theText.setText("GOLDEN Gate"); theText.setTextColor(Color.WHITE); theText.setTypeface(Typeface.DEFAULT_BOLD); LayoutParams layoutParamsText= new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); theText.setLayoutParams(layoutParamsText); theText.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM); frameLay.addView(theText); frameLay.addView(imageView); 

Todo lo que necesitas hacer es hacer que la vista de texto llene al padre como

 LayoutParams layoutParamsText= new LayoutParams(LayoutParams.FILL__PARENT, LayoutParams.FILL_PARENT); 

Cuando se establece la gravedad en la vista de texto, significa que está diciendo a la vista de texto dónde posicionar a sus hijos. Pero ya que su texto sólo tiene el tamaño de su texto, la gravedad no mostrará ninguna diferencia. Así que haz el textview para llenar el padre.

Pero creo que RelativeLayout es mucho más adecuado para esto que FrameLayout. Usando el RelativeLayout esto es cómo se vería

 RelativeLayout rLayout = new RelativeLayout(this); LayoutParams rlParams = new LayoutParams(LayoutParams.FILL_PARENT ,LayoutParams.FILL_PARENT); rLayout.setLayoutParams(rlParams); ImageView image= new ImageView(this); image.setImageResource(R.drawable.icon); image.setLayoutParams(rlParams); RelativeLayout.LayoutParams tParams = new RelativeLayout.LayoutParams (LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); tParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); tParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); TextView text=new TextView(this); text.setText("GOLDEN Gate"); text.setTextColor(Color.WHITE); text.setTypeface(Typeface.DEFAULT_BOLD); text.setLayoutParams(tParams); rLayout.addView(image); rLayout.addView(text); setContentView(rLayout); 

En lugar de FrameLayout, puede intentar utilizar un RelativeLayout como el contenedor. De esta manera, puede colocar el texto superpuesto en cualquier lugar que desee. Lo que debería funcionar para usted es asignar lo siguiente a su TextView dentro de un RelativeLayout:

 android:layout_alignParentBottom="true" and android:layout_centerInParent="true" 

A continuación, puede ajustar la colocación con márgenes.

  • android: límite de 10 caracteres por línea TextView
  • Poner texto constante dentro de EditText que no debería ser editable - Android
  • EditText Alternativas en un Widget? Tiene que haber una forma
  • TextView con color de fondo y espaciado entre líneas
  • Android textview html fuente tamaño etiqueta
  • Expanda TextView con wrap_content hasta que la vista de vecino llegue al final del padre
  • Desplazamiento horizontal automático de Android TextView
  • Cómo agregar múltiples textview con imageview en edittext en android
  • Android: Cambio del texto del cuadro de diálogo de progreso
  • Android Get Country Emoji Flag utilizando Locale
  • ¿Cuál es la diferencia entre el estilo de TextView y los atributos android: textAppearance?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.