Viewクラスを拡張してカスタムビューを作成するのが最善の方法だと思います。見た目ほど複雑ではありません。ここでは、カスタムUIコンポーネントに関する詳細情報を見つけることができます。
主なアイデアは、onDraw(Canvas canvas)メソッドとonMeasure(int widthMeasureSpec、int heightMeasureSpec)メソッドをオーバーライドすることです。onMeasureでは、ビューの寸法を返す必要があります。また、長方形のサイズと角度、および描画するテキストのサイズを計算することもできます。または、アクティビティから表示してテキストと画像の計算を行うときに明示的に呼び出されるカスタムのresize()メソッドを実装することもできます。
すべての測定値がわかったら、onDraw(Canvasキャンバス)メソッドで画像とテキストの両方を配置して描画できます。
@Override
protected void onDraw(Canvas canvas) {
myImageDrawable.setBounds(0,0,50,50);
myImageDrawable.draw(canvas);
canvas.drawText(myText, 10, 10, myTextPaint);
}
Canvasクラスの詳細については、こちらをご覧ください。また、StaticLayoutを使用してテキストを測定することもできます。