android imageview prensa larga y prensa regular
Tengo una visión de la imagen donde necesito tener ambas presiones largas (para un menú del contexto) y las prensas regulares que trabajan. Puedo conseguir uno u otro trabajo, pero no ambos. ¿Qué me perdí? El código abajo sólo funciona para las prensas regulares. En cuanto toco la pantalla, comienza a ejecutar el código onTouch.
ImageView image = (ImageView)findViewById(R.id.visible_image); image.setLongClickable(true); image.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: // disable the screen taps for 500ms DecodeActionDownEvent(v, ev, bm2); case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_UP: } return true; } }); registerForContextMenu(image);
…
- Aplicar colorMatrix colorFilter en parte de imageView con una máscara
- Diferencia entre un ImageView y ImageButton que puede hacer clic
- ViewPager onClickListener hace referencia a la vista errónea en android
- Cómo mostrar la imagen de YUV en Android
- Convertir url de imagen en mapa de bits rápidamente
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle("Edit"); ArrayList<String> menuItems = new ArrayList<String>(); menuItems.add("Edit page settings"); menuItems.add("Edit page objects"); menuItems.add("Edit this object"); for (int i = 0; i<menuItems.size(); i++) { menu.add(Menu.NONE, i, i, menuItems.get(i)); } }
- BaseAdapter y ContextMenu
- Animación de desenfoque de Android ImageView
- ImageView en forma circular a través de xml
- La imagen de Android muestra una imagen verdosa
- Android: ImageView getID (); Devolver entero
- ¿Es posible obtener coordenadas en tiempo real de un ImageView mientras está en la animación de Translate?
- Android, ImageView sobre ImageView
- Establecer la imagen del url a la vista de la imagen
Puedes intentar hacerlo de esta manera:
ImageView imageView = (ImageView) findViewById(R.id.ImageView); imageView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { //your stuff return true; } }); imageView.setOnClickListener(new OnClickListener() { @Override public boolean onClick(View v) { //your stuff return true; } });
Para obtener coordenadas x e y, defina un oyente táctil
ImageView.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { //And u can get x and y values like: x = event.getX(); y = event.getY() ; } }
Después de mucho buscar y experimentar esta es la mejor solución que he encontrado para lograr este tipo de comportamiento:
//Define these variables at the beginning of your Activity or Fragment: private long then; private int longClickDuration = 5000; //for long click to trigger after 5 seconds ... ImageView imageView = (ImageView) findViewById(R.id.visible_image); imageView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { then = (long) System.currentTimeMillis(); } else if (event.getAction() == MotionEvent.ACTION_UP) { if ((System.currentTimeMillis() - then) > longClickDuration) { /* Implement long click behavior here */ System.out.println("Long Click has happened!"); return false; } else { /* Implement short click behavior here or do nothing */ System.out.println("Short Click has happened..."); return true; } } return true; } });
- Cómo saber en qué botón se hizo clic en onClick ()
- ¿Mostrar imágenes en Android usando TextView y Html.ImageGetter asincrónicamente?