Relative layout in der form eines Kreises
Möchte ich ein relative layout in der form eines Kreises.Ich will nicht auf Leinwand, weil ich nicht in den Griff anklickbar events im canvas-Bereich.Ich will, dass jedes Ereignis wie Mausklick, etc ausgeführt werden, in diesem Kreis nur.Auf einen Klick außerhalb des Kreises keiner der layout-Ereignis ausgeführt werden soll.
Habe ich folgenden code circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="@android:color/white"/>
<size
android:width="10dp"
android:height="10dp"/>
</shape>
,img.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/circle"/>
</layer-list>
,layout
<RelativeLayout
android:id="@+id/test_layout"
android:layout_width="700px"
android:layout_height="700px"
android:background="@drawable/img" />
Aber dieser code wird bei der Einrichtung Kreis auf dem hintergrund der relativen layout, welches in die form des Rechtecks .Was auch immer die Veranstaltung, die ich hinzufügen relative layout, die ausgeführt werden, außerhalb des Kreises.Ich Wünsche, wenn das gesamte layout ist ein Kreis.Wie kann ich das tun?.
- erstellen Sie die Form in den drawable-Ordner und gelten als der hintergrund.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine
xml
- Datei, und fügen Sie indrawable
OrdnerVerwenden Sie diese Datei im hintergrund von Ihrem layout.
Jedes layout ist ein Rechteck. Sie können nicht ändern. Das ist, wie die Android-UI-framework arbeitet.
Aber Sie können einen Kreis zeichnen (die Weise, die Sie bereits tun) und mit der touch-Ereignisse selbst.
Dafür müssen Sie erstellen eine benutzerdefinierte relative layout (oder jede andere Art von layout, das Sie brauchen):
sowie
@Override
die berühren Methoden:dann ist es nur eine Frage der erstellen die Methode
private boolean isInsiderCircle(MotionEvent event)
mit geometrie-Sachen.