Расположение Android как кнопка с возможностью выбора

Я пытаюсь создать кнопочный компонент с выровненным по левому краю ImageView, а затем 2 TextViews справа от ImageView, уложенным один над другим и отформатированным по-другому, как в следующем примере:.

__________________________ | | | |-----| Bold Main Text | | |Image| | | |-----| Small Sub Text | |__________________________| 

Я также хочу, чтобы ImageView изменялся в зависимости от состояния щелчка внешнего контейнера, подобно стандартной кнопке, связанной с выбранным ресурсом, связанным с ним. Так что, когда я нажимаю в любом месте во внешнем поле, выбирается состояние выбора изображения.

Я знаю, что могу использовать кнопку «Button», устанавливая свойство «drawableLeft» для создания одной строки текста, связанной с изображением, как кнопки, но, похоже, у меня может быть только один элемент текста с использованием этой стратегии.

Кто-нибудь реализовал какие-либо компоненты пользовательского интерфейса, подобные этому в прошлом?

Благодаря!

Вы можете добавить android:duplicateParentState="true" в виджет ImageView . Также вам необходимо сделать родительский элемент ImageView доступным и настраиваемым.

RelativeLayout в следующем коде будет действовать как Button :

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout:height="match_parent" android:orientation="vertical"> <RelativeLayout android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:focusable="true"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:duplicateParentState="true" android:src="@drawable/icon" /> <TextView android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/image" android:layout_alignTop="@+id/image" android:layout_alignWithParentIfMissing="true" android:duplicateParentState="true" /> <TextView android:id="@+id/text2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/image" android:layout_below="@+id/text1" android:layout_alignWithParentIfMissing="true" android:duplicateParentState="true" /> </RelativeLayout> </LinearLayout>