Ich habe ein kleines Android ImageButton auf einem Bildschirm, der ein Symbol darstellt. Das Problem ist, dass es schwierig ist, es zu berühren und zu aktivieren. Ich möchte nicht die Größe des Bildes selbst vergrößern, aber ich möchte die anklickbare Region erweitern und vergrößern. Wenn sich der Benutzer also nahe genug an dem Bild befindet, wird das onClick-Ereignis aktiviert. Wie kann dies geschehen, ohne OnTouch-Ereignisse für den umgebenden Bildschirmbereich zu implementieren?Android ImageButton Wie kann ein anklickbarer Bereich größer als das Bild selbst sein?
Antwort
Sie könnten Ihre ImageButton
in eine andere ViewGroup
wickeln und Padding auf die ViewGroup
setzen. Dann würden Sie auf Klicks auf die ViewGroup
hören. Hier ein Beispiel:
<FrameLayout
android:id="@+id/button_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/my_button"
android:duplicateParentState="true"
android:clickable="false"
android:focusable="false" />
</FrameLayout>
Sie dann für Klicks auf R.id.button_layout
hören würde, und Ihre ImageButton
sollten erhalten alle die gleichen Zustände (gedrückt, angeklickt, etc.) als Mutter Layout.
Ich hatte eine ähnliche Situation ... Ich habe nur das Symbol mit einem relativen Layout platziert, und legte dann einen größeren Button direkt über den Anfang, der ein Zeichen verwendet, das im Normalzustand vollständig transparent ist, und fügt transluzente Farbe hinzu für gedrückt/fokussiert/etc.
Wie spezifiziert man transluzente Farbe? –
Ich zeichnete die Symbole (der normale Zustand ist natürlich ein leeres Quadrat ohne Farbe oder Alpha) und referenzierte alle durch eine ziehbare XML, indem ich die Schaltfläche auf die Xml ziehbar. Ich habe das nicht nur getan, um den Button größer als das Bild zu machen, aber es erlaubte mir, ein statisches Systembild für ein Telefonsymbol zu verwenden, um die Dinge auf jedem separaten Gerät einheitlich zu halten. –
siehe hier: http://developer.android.com /resources/tutorials/views/hello-formstuff.html –
Ich bin nicht sicher, wie unser Layout konfiguriert ist, aber eine Sache, die in den Sinn kommt, ist ein relatives Layout zu verwenden. Erstellen Sie Ihr Symbol mit einem großen transparenten Hintergrund. Sie müssen sich mit dem Layout beschäftigen, um es richtig positioniert zu bekommen, aber der transparente Bereich wird auch anklickbar sein.
- 1. Android Set ImageButton als Toggle
- 2. Wie kann ich das Bild in imagebutton auf den gesamten Bereich der Bildschaltfläche dehnen?
- 3. ImageButton über ein anderes Bild
- 4. Wie kann MongoDB dataSize größer als storageSize sein?
- 5. Wie kann ein dll-Bild im virtuellen Speicher mehr als 1000 mal größer sein als der Speicherplatz auf der Festplatte?
- 6. Android ImageButton - Bild kann nicht in der Mitte angezeigt werden
- 7. Android - anderes Bild für Rollover auf ImageButton
- 8. Erwartete ‚33990Times Jobs‘ größer sein als 0
- 9. ImageButton in Android
- 10. Kann der Alpha-Parameter der ALS.trainImplicit() größer als 1 sein?
- 11. Höhe der div ist größer als das Bild
- 12. Android ImageButton/Benutzerdefinierte Schaltfläche?
- 13. Gefiltertes Bild ist größer als das Originalbild in Dateigröße - LiipImagineBunle
- 14. Bild zentrieren, das größer ist als der Bildschirm
- 15. Wie kann ich ein Bild in ein div-Element einfügen, wenn das Bild breiter ist als das div?
- 16. Tabellenzellen, die größer sind als sie sein sollen
- 17. ImageButton in Android HomeScreen Widget
- 18. Warum Tab-Menü Bild muss die Menügröße größer sein?
- 19. Deaktivieren Sie ein ImageButton?
- 20. Wie groß sollten die Bildmaße für imageButton in Android Studio sein?
- 21. Wie kann ich ein Werbebanner hinzufügen, das größer als das Standard-Banner in Xcode ist?
- 22. Unity3d neue Benutzeroberfläche: Wie wird die interaktivierbare Zone der Schaltfläche größer als das angehängte Bild gesetzt?
- 23. Kann ich ein ASP.NET-ImageButton erstellen, das nicht postbackt?
- 24. Wie grep für ein Größer als Symbol?
- 25. Android: TargetFrameworkVersion ist größer als mein Projekt
- 26. Überprüfen, ob ein Datum größer als das angegebene Datum ist
- 27. Kann ein Browser ein neues Fenster öffnen, das größer als die Bildschirmgröße ist?
- 28. Ein Gif-Bild als Android-Ladesymbol hinzufügen?
- 29. Wie bekomme ich die src von einem ImageButton in Android?
- 30. Machen Sie Tooltip-Bereich größer als die Kontrolle
Ich habe versucht, Polsterung links von 20-50 Dip aber das scheint nicht zu funktionieren. –
Ist die Idee, Padding = "20dip" anstatt PaddingRight, PaddingLeft usw. nur zu setzen? –
Dies wäre vielleicht die schnellste Technik, wenn es funktionierte, aber ich konnte es immer noch nicht bestätigen. –