Android: la mejor manera de superponer un botón de reproducción en una imagen / miniatura

Tengo una aplicación para Android que puede reproducir audio / video y mostrar imágenes. Para los videos, quiero superponer un botón de reproducción en la parte superior de la imagen de vista previa y también en las vistas de lista ... En este momento, lo que estoy haciendo es con un ImageView en xml, y luego el dibujable es una lista de capas de capas que defino programáticamente porque una de las imágenes es dinámica, el botón de reproducción es estático, por supuesto. Quiero alinear el botón de reproducción 10px desde la parte inferior y centrado horizontalmente.

Mi ImageView se define así (en xml)

<ImageView 
          android:id="@+id/EvidencePreview"      
          android:layout_width="267dp"
          android:layout_height="201dp"
          android:scaleType="centerCrop"
          android:layout_margin="3dp"
          android:layout_gravity="center_horizontal|center_vertical"/>

The ImageView es parte de un formulario donde el usuario puede editar el título y otra información. Luego, en mi actividad, ahora creo la lista de capas de esta manera:

Resources resources = mContext.getResources();
Drawable playOverlayDrawable = resources.getDrawable(R.drawable.play_overlay_large);                        
Drawable[] layers = new Drawable[2];
layers[0] = Drawable.createFromPath(tb.filePath);
layers[1] = playOverlayDrawable;
LayerDrawable layerDrawable = new LayerDrawable(layers);
ViewGroup.LayoutParams lp = iv.getLayoutParams();

int imageHeight = lp.height;
int imageWidth = lp.width;
int overlayHeight = layers[1].getIntrinsicHeight();
int overlayWidth = layers[1].getIntrinsicWidth();
int lR = (imageWidth - overlayWidth) / 2;
int top = imageHeight - (overlayHeight + 10);
int bottom = 10;
layerDrawable.setLayerInset(1, lR, top, lR, bottom);
iv.setImageDrawable(layerDrawable);

Esto solo funciona cuando la orientación de la imagen es horizontal. Tenga en cuenta que la imagen / miniatura es el MINI_KIND, lo que significa que se supone que es 512 x 384, pero veo que en realidad no es del tamaño. En mi teléfono son 480x800 u 800x480 dependiendo de la orientación de la cámara estaba en ... Dado que mi ancho / alto de diseño está predefinido, solo quiero una forma de evitar que la capa del botón de reproducción se ajuste y alinearla de la misma manera cada vez ...

La otra forma obvia de hacer esto sería usar un diseño relativo (¿o tal vez un diseño de marco?) Pero esperaba evitar eso ya que estoy usando el mismo código para mostrar imágenes y videos (los cuales tienen un vista previa en miniatura de la imagen, pero solo los videos deben tener el botón de reproducción).

Alguna idea de cómo alinear las capas con una lista de capas o alternativas que funcionarían igual o mejor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta