[RESOLVIDO] Manter Botão pressionado android

6 respostas
L

Salve galerinha!

Bem galera....
Estou desenvolvendo um APP para android para controlar o mouse(e futuramente o teclado) de um PC via socket...

Bem... Eu criei 4 botões...
1 para fazer o mouse ir para cima
outro para direita....

E 1 botão para clickar....

Bem... quando a pessoa pressiona o botão e solta ele está enviando beleza o comando... Mas se a pessoa ficar segurando ele só move o mouse quando o cara soltar o bt....

Mas como fazer para que enquanto a pessoa esteja pressionando o botão, a cada(sei lá) 1/10 seg ele movimente o mouse??

Estou usando este codigo:
btCima.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(conectado){
					try {
						con.streamSaida.writeUTF("mC");
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});

Grato pela atenção!
Fiquem com DEUS!

6 Respostas

W

Você precisa usar um outro evento que seja disparado antes do usuário soltar o botão. Não conheço bem esta parte da API do Android, mas dê uma olhada no onKeyDown:

http://developer.android.com/reference/android/view/View.html#onKeyDown(int, android.view.KeyEvent)

L

Mas cara esse onKeyDown é enquanto uma “tecla”(fisico) é pressionada né??

Mas eu preciso de quando o usuario pressionar um “botão”(virtual), entendes??

Mas muito obrigado pela tua atençao!

Fica com DEUS!

M

Voce pode usar o onTouchEvent e tratar ACTION_DOWN e ACTION_UP.

L

Eu tava pensando em usar o onTouchListener mesmo…

E criar uma Thread para verificar… se o bt estiver pressionado ele envia o comando via o Socket…

Essa é a melhor forma??

Vou fazer aqui e depois posto como ficou o codigo para a galera…

Grato pela atenção:!:

L

Galerinha eu fiz assim:

Por a conexao ser via Socket... Para não sobrecarregar muito o celular... Eu apenas criei um comando para o celular enviar para o servidor começar a mover o mouse e outro para enviar para o servidor parar de mover o mouse...

No servidor é rodada uma Thread q a cada 0,6 seg ele checa um boolean se é para mover o mouse para cima, para baixo, ....

Ficou marromeno assim:

btBaixo.setOnTouchListener(new View.OnTouchListener() {
			
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				
				if(event.getAction() == MotionEvent.ACTION_DOWN){ // Quando o bt é pressionado
					if(conectado){								  // Checa se está conectado
						try {									  // Se sim
							con.streamSaida.writeUTF("mB");		  // Escreve para o servidor comecar a mover o mouse
						} catch (IOException e) {				  // Exeption de IO ;)
							e.printStackTrace();				  // Retorna o exeption
						}
					}
		        }
				
				if(event.getAction() == MotionEvent.ACTION_UP){   // Quando o bt é "solto"
					if(conectado){								  // Checa se está conectado
						try {									  // Se sim
							con.streamSaida.writeUTF("nB");		  // Escreve para o servidor parar de mover o mouse
						} catch (IOException e) {				  // Exeption de IO ;)
							e.printStackTrace();				  // Retorna o exeption
						}
					}
		        }
				
				return false;				  					  // Retorna false o onTouch
			}
		});

Muito obrigado pela atenção de todos!

Fiquem com DEUS:!:

C

landantas, eu vi que já faz tempo que já fez esse pergunta. Mas acontece que estou querendo criar um programa parecido com o seu, teria como me dizer como faço para enviar arquivos via socket no android?

Criado 11 de agosto de 2012
Ultima resposta 6 de out. de 2014
Respostas 6
Participantes 4