Мне нужно построить следующий вид:Пользовательский вид с кнопками
Где кнопки могут быть обычные кнопки, которые доступны из кода Java с использованием findViewById()
метода.
Я не уверен, могу ли я это сделать с помощью LayerList или если мне нужно реализовать пользовательский вид с нуля? Может ли кто-нибудь предложить какой-то путь, которым я могу следовать, чтобы достичь этого?
Update
Сейчас у меня есть это:
Что мне нужно сделать сейчас это: - скрыть то, что находится за пределами круга; - только части кнопок, находящиеся внутри cicle, должны запускать событие onClick
.
Должен ли я использовать пользовательскую группу просмотра для этого? Я пытался, но я не был в состоянии нарисовать круг на верхней части кнопки (должна быть возможность сделать это в методе onDraw()
?) ...
Вот мой код:
main_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<include layout="@layout/custom_layout" />
</LinearLayout>
</RelativeLayout>
custom_layou.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/buttons_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="14dp"
android:paddingBottom="10dp"
android:background="#CC0000FF"
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:id="@+id/button4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button4" />
</LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignTop="@+id/buttons_layout"
android:layout_alignLeft="@+id/buttons_layout"
android:layout_alignBottom="@+id/buttons_layout"
android:src="@drawable/circle_foreground" />
</RelativeLayout>
circle_foreground.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="100dp"
android:thickness="0dp"
android:useLevel="false" >
<solid android:color="@android:color/transparent" />
<stroke android:width="4dp"
android:color="#000000"/>
</shape>
Я не уверен, что вы подразумеваете под словом «... объединяйтесь в одно изображение с кругом в режиме релятивирования». Можете ли вы объяснить, как я могу это сделать?Мне, наверное, не хватает чего-то легкого: s – amp