Ho due immagini la cui area trasparente si sovrappone l'una all'altra. Quando clicco su un'immagine, viene chiamato l'onclicklistener di un'altra immagine. Esiste comunque la possibilità di ridurre l'area cliccabile di ImageView.Android: come ridurre l'area cliccabile della visualizzazione?
risposta
si crea un TouchDelegate
:
final View parent = (View) findViewById(R.id.touch_delegate_root);
parent.post(new Runnable() {
// Post in the parent's message queue to make sure the parent
// lays out its children before we call getHitRect()
public void run() {
final Rect rect = new Rect();
Button delegate = YourActivityClass.this.mButton;
delegate.getHitRect(rect);
rect.top -= 20;
rect.bottom += 12; // etc
parent.setTouchDelegate(new TouchDelegate(rect , delegate));
}
});
denominati nel da here
si può risolvere utilizzando solo xml. Metti la tua immagine in una cornice e posiziona un'altra vista trasparente che leghi per fare clic sugli eventi su di essa. Regolare le dimensioni e la posizione con i parametri di layout:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:id="your_view"
android:clickable="false"
<!-- your other attributes -->
<!-- ... -->
/>
<ImageView android:id="the_clickable_view"
android:src="@null"
<!-- set desired size of clickable area -->
<!-- align it inside a frame using:
android:gravity and android:margins -->
/>
</FrameLayout>
Poiché l'area non cliccabile desiderata è una "trasparente" (presumo che non si trovi all'interno dell'area del disegnabile) si potrebbe anche abbandonare la vista aggiunta e semplicemente aggiungendo il FrameLayout lo hai risolto - usa gli attributi di layout originali sul FrameLayout invece di ImageView e rende l'ImageView grande solo quanto vuoi cliccabile. –
Non usare l'OnClickListener, ma il OnTouchListener e gestire la zona click da soli.
Ad esempio ridimensionando il rettangolo touch e traducendolo al centro della vista. È anche possibile utilizzare il raggio o gli offset manuali.
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final Rect rect = new Rect();
v.getHitRect(rect);
float scale = 0.5f;
final float x = event.getX();
final float y = event.getY();
final float minX = v.getWidth() * 0.5f * (1.0f - scale);
final float maxX = v.getWidth() * 0.5f * (1.0f + scale);
final float minY = v.getHeight() * 0.5f * (1.0f - scale);
final float maxY = v.getHeight() * 0.5f * (1.0f + scale);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (x > minX && x < maxX && y > minY && y < maxY) {
Log.d("TOUCH", String.valueOf(x) + " " + String.valueOf(y));
}
break;
}
return true;
}
});
- 1. visualizzazione testo cliccabile WPF
- 2. Come ridurre la visualizzazione del designer Android in Intellij Idea12?
- 3. TextView cliccabile in Android
- 4. Come aggiungere un pulsante cliccabile sulla cella della tabella?
- 5. Android - Rende cliccabile l'intera barra di ricerca
- 6. Come fare un Relatayoutout cliccabile?
- 7. Android: icona cliccabile mobile su schermo?
- 8. Ricerca personalizzata Visualizza tutto cliccabile in Android
- 9. Ridurre la dimensione della sorgente Repository Android .repo Directory
- 10. come rendere cliccabile l'immagine
- 11. Android: avvia l'attività dal testo cliccabile
- 12. Set link cliccabile in Java-Android
- 13. Come utilizzare il nuovo layout di vincoli Android per ridurre la gerarchia di visualizzazione
- 14. Come ridurre l'integrità della pipa denominata WCF
- 15. Come ridurre l'utilizzo della memoria virtuale cassandra?
- 16. Come ridurre la scalabilità della mappa AppEngine?
- 17. Java ridurre l'utilizzo della CPU
- 18. Android ImageButton come avere un'area cliccabile più grande dell'immagine stessa?
- 19. come fare una riga completa cliccabile in listview android
- 20. Consentire all'utente di ingrandire/ridurre zoom di una visualizzazione Web
- 21. differenza tra `focusable` e` cliccabile`
- 22. Android: come testare una visualizzazione personalizzata?
- 23. Android - ridurre EditText floating padding/margin?
- 24. Android visualizzazione personalizzata Constructor
- 25. Android ridurre la dimensione del Immagine fotocamera
- 26. Pulsante cliccabile (o qualsiasi vista) all'interno di EditText in Android
- 27. Area Google Map Marker cliccabile
- 28. Qt - QTableView - Pulsante cliccabile nella riga della tabella
- 29. Ottieni l'angolo di visualizzazione del dispositivo della fotocamera Android
- 30. Visualizzazione della finestra di dialogo "Apri con" su Android
Con il tuo metodo sono stato in grado di aumentare l'area tangibile, ma non ero in grado di ridurre l'area. – Amit