Q:

Наложить один ImageView на другой

Как правильно наложить один ImageView на второй, чтобы было как на картинке и чтобы при разных разрешениях картинка с буквой не съезжала. Я это сделала через margin-ны, но хотелось бы узнать более лучшее решение
 

A:

Для такого простого наложения не нужно ничего особенного выдумывать и делать какие то вычесления в коде или использовать "тяжелые" контейнры, вроде RelativeLayout. Все просто, как спинка минтая:
Подготавливаете два изображения: большое, с картинкой, и маленькое, с буквой и прозрачным фоном, таким образом, чтобы при совмещении большого с маленьким по верхнему левому углу получился ожидаемый результат (здесь черный контур - большое изображение, красный контур - маленькое).

Теперь разметка, используем для наложения самый легкий контейнер - FrameLayout (особенность его в том, что все размещение элементов внутри контейнера идет от верхнего левого края, если не указано свойство gravity):
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

    <ImageView
        android:id="@+id/letter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</FrameLayout>

На разных экранах эти изображения будут пропорционально масштабироваться, сохраняя приемлемое взаиморасположение. Для лучшего эффекта рекомендуется подготовить несколько альтернативных ресурсов (отдельно для экранов HDPI, XHDPI и тд.)

