Ver mensagens sem resposta | Ver tópicos ativos Hoje é 24 Set 2020, 21:08



Responder Tópico  [ 20 Mensagens ] 
 Movimentação de Imagem na tela usando o TouchScreen 
Autor Mensagem
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Movimentação de Imagem na tela usando o TouchScreen
Olá a todos.
Anteriormente eu tinha algumas dúvidas com relação a esse assunto, mas estudei um pouco e aprendi a respeito.

O ato de mover qualquer imagem pela tela da sua aplicação (usando o touchscreen) torna a mesma dinâmica e intuitiva. Fazem os olhos do usuário brilharem.

A seguir, um tutorial passo-a-passo de como proceder. Qualquer dúvida, podem perguntar a vontade!

IDEIA: uma imagem .png que se movimenta pela tela e, quando chegar em determinado ponto, executa uma ação.
Bom vamos lá.

1) Uma classe que tem por função gerenciar o Layout da aplicação:


package br.com.teste;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;

public class GraphicsActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void setContentView(View view) {
        if (false) { // set to true to test Picture
            ViewGroup vg = new PictureLayout(this);
            vg.addView(view);
            view = vg;
        }
       
        super.setContentView(view);
    }
}
 


2) Uma Classe que executará a ação de mover algo na tela. Só um detalhe: entenda essa classe como uma Classe Pai, e dentro dela uma Classe filha. Isso faz parte dos conceitos de JAVA.


package br.com.teste;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;

public class Mover extends Activity{
    private String CATEGORIA = "Mover";
    @Override
    protected void onCreate(Bundle icicle) {
       
        super.onCreate(icicle);
        setContentView((new Mover()).new Screen(this));
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return super.onTouchEvent(event);
    }
   
   
    class Screen extends View{
       
        private Drawable imagemFundo;
        private Drawable imagem;

        int x, y;
        private boolean selecionou;
        private int larguraTela;
        private int alturaTela;
        private int larguraImagem;
        private int alturaImagem;
       
        public Screen(Context context) {
            super(context);
            // Faz referência a imagem por meio da Classe R (Jamais alterar essa Classe manualmente!)
           
            imagem     = context.getResources().getDrawable(R.drawable.bolinha);
            imagemFundo    = context.getResources().getDrawable(R.drawable.fundo);
            setBackgroundDrawable(imagemFundo);
           
            // Armazena a altura e largura da imagem
            larguraImagem = imagem.getIntrinsicWidth();
            alturaImagem  = imagem.getIntrinsicHeight();
           
            // View recebe foco
            setFocusable(true);
        }
       
        @Override
        // Chamado quando a tela é redimensioada, ou iniciada
        protected void onSizeChanged(int width, int height, int oldw, int oldh) {
            super.onSizeChanged(width, height, oldw, oldh);
           
            this.larguraTela = width;
            this.alturaTela = height;
           
                        //Estado inicial da imagem
            x    = 113;
            y    = 168;
        }
       
        public void onDraw(Canvas canvas) {
            super.onDraw(canvas);
           
            // Define os limites/área para desenhar
           
            imagem.setBounds(x, y, x + larguraImagem, y + alturaImagem);

            // Desenha a imagem
            imagem.draw(canvas);
        }
       
        @Override
        // Move a imagem
        public boolean onTouchEvent(MotionEvent event) {

            float x = event.getX();
            float y = event.getY();
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    selecionou = imagem.copyBounds().contains((int) x, (int) y);
                    break;
                case MotionEvent.ACTION_MOVE:
                    if (selecionou) {
                        this.x = (int) x - (larguraImagem / 2);
                        this.y = (int) y - (alturaImagem / 2);
                        Log.i(CATEGORIA, "IMAGEM: X = " + x + "Y = " + y);
                    }                  
                    break;

                case MotionEvent.ACTION_UP:
                    /*
                     * Verificação de onde está cada objeto na tela depois que ele foi movido de lugar
                     */
 
                   
                    //** Se a imagem estiver dentro da área limitada: iniciar uma Activity **\\
                    if(selecionou){
                        if((x >= 7) && (x <= 350)){
                            if((y >= 361) && (y <= 540)){
                                selecionou = false;
                                Intent intencao = new Intent(getContext(), Lista.class);
                                ((Activity)getContext()).startActivity(intencao);
                                finish();
                            }
                        }
                    }
                    break;
            }
            invalidate();
            return true;
        }
    }
   
}//Fim da Classe

 


3) XML - layout:


<?xml version="1.0" encoding="utf-8"?>
    <AbsoluteLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ablFundo"
        android:background="@drawable/fundo">

       
    </AbsoluteLayout>

 


4) Só não se esqueça que não basta copiar este código, você deve ter uma imagem acoplada a aplicação. Qualquer coisa troque a constante da imagem na Classe Java.

"Qualquer dúvida/problema/erro no código/elogio/crítica, por favor, peço que postem".
Obrigado!

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


13 Mar 2011, 20:05
Perfil
What is Android?
What is Android?

Data de registro: 06 Mai 2011, 18:37
Mensagens: 8
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Opa cara não consegui rodar o seu projeto, fiz o que esta sendo pedido, não entendi o que vc kis dizer com "você deve ter uma imagem acoplada a aplicação". O que devo fazer

abração

té mais


06 Mai 2011, 18:39
Perfil
What is Android?
What is Android?

Data de registro: 06 Mai 2011, 18:37
Mensagens: 8
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Aa mais uma, poderia mandar a classe Lista também

Nete trecho do Mover.java, parece que é necessário essa classe (Intent intencao = new Intent(getContext(), Lista.class) )

E a classe PictureLayout, ela vem de onde?


06 Mai 2011, 18:57
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Amigo, bom dia. Como vai?

Quando eu disse que você deve ter uma imagem acoplada, me referia ao fato de você ter uma imagem já adicionada na aplicação. Você insere a imagem afim de tocá-la para movê-la pelo touch.

Me passa seu E-mail que eu envio o projeto pra você estudar.

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


11 Mai 2011, 11:38
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Olá, amigo.
Com relação a Lista.class
Bom vamos lá.

1º) Vamos analisar o código:

case MotionEvent.ACTION_UP:
                    /*
                     * Verificação de onde está cada objeto na tela depois que ele foi movido de lugar
                     */

                   
                    //** Se a imagem estiver dentro da área limitada: iniciar uma Activity **\\
                    if(selecionou){
                        if((x >= 7) && (x <= 350)){
                            if((y >= 361) && (y <= 540)){
                                selecionou = false;
                                Intent intencao = new Intent(getContext(), Lista.class);
                                ((Activity)getContext()).startActivity(intencao);
                                finish();
                            }
                        }
                    }
                    break;

Bom, só chega no case: MotionEvent.ACTION_UP depois que a imagem foi movida de lugar, ou seja, o usuário foi lá e a arrastou (pela tela touchscreen) a imagem de lugar. Até aí, sem problemas!
Bom, então, ele entrou no "case" do switch, pois neste ponto vamos pensar que a imagem jpa foi arrastada, legal.

Imagine a situação, você tem vários Ícones de produtos na sua tela, e em algu ponto tela uma cesta. A ideia: arrastar cada ítem pra dentro dessa cesta. Pra saber se o ítem está ou não dentro da cesta, eu fiz a sequencia de testes usando a condição "if". No meu caso, eu abro uma lista, se o produto está dentro dessa cesta. Lista esta identificada pela classe Lista.class. Então eu tenho a intenção de abrir esta lista quando o ícone chega em determinado ponto da tela. Aí, amigo, vai da sua criatividade. Você pode ali, no lugar de abrir uma lista, executar algum método de sua preferência... A tarde eu posto a classe lista.

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


11 Mai 2011, 11:46
Perfil
What is Android?
What is Android?

Data de registro: 06 Mai 2011, 18:37
Mensagens: 8
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Opa... ok então, segue meu email

sousa_hulk@hotmail.com
bruno.sousahulk@gmail.com

Abraço...

Muito obrigado


11 Mai 2011, 11:47
Perfil
What is Android?
What is Android?

Data de registro: 12 Mai 2011, 03:16
Mensagens: 4
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
o'la, voce poderia me mandar o projeto tbm?? muito obrigado

plbatera@hotmail.com


12 Mai 2011, 04:28
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Olá pessoal, bom dia. Como vão?

Eu mando para os dois, sem problemas.

Grande abraço! Aproveito a deixa pra agradecé-los pelas perguntas e pelo interesse pelo tópico. Muito obrigado.

Ótimo dia.

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


12 Mai 2011, 11:14
Perfil
What is Android?
What is Android?

Data de registro: 06 Mai 2011, 18:37
Mensagens: 8
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Valeu fico no aguardo
Abração bom dia pra vcs ...


12 Mai 2011, 12:09
Perfil
What is Android?
What is Android?

Data de registro: 07 Jun 2011, 12:26
Mensagens: 3
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
O tópico ainda está aberto?
Estou tentando implementar o touch com drag na minha aplicação, mas com esse exemplo não tive sucesso.
Tem como dar umas dicas?


07 Jun 2011, 16:43
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Marquinho,

Lindo código!!!

Hoje mesmo farei algum app usando essa ideia pra aprender mais sobre isso!!

Ahh.. quando vc puder e se puder, disponibilize um link do seu projeto para o pessoal baixar!!

https://rapidshare.com/

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


07 Jun 2011, 22:29
Perfil WWW
What is Android?
What is Android?

Data de registro: 06 Mai 2011, 18:37
Mensagens: 8
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
AInda no aguardo

abração galera!!!


07 Jun 2011, 23:08
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
/vv
Pessoal, muito bom dia.
Não sei na cidade de vocês mas por aqui tá caíndo o Mundo, que tempo maluco.

Bom, sim: eu fiquei de enviar o projeto e tudo mais. De fato não enviei e tenho motivo para isso. Estou no quarto ano galera, tá corrido.
Bom, o fato é que hoje eu chego (teoricamente) mais cedo em casa. Vou pegar o projeto e disponibilizar na forma de link pra download.

Vou tentar comentá-lo, mas se acaso não der tempo, vocês podem ir colocando as dúvidas aqui. Assim que eu fizer isso, eu coloco o link de dowload aqui pra vocês usarem.

Compartilhando com vocês, estou pensando na chance de criar um site com tutoriais pra Android. Sabe, tutoriais simples, passo a passo, bem ilustrados e disponibilizar, o que acham?
Eu pensei em um site, não como um forum, mas como um guia, pra quem tá estudando a plataforma. O que vocês acham?

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


09 Jun 2011, 11:52
Perfil
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Essa ideia do site é bem interessante. Eu mesmo já tive essa ideia, mas não tive tempo de implementar.

Tenho até vários tutorias na fila para serem feito e alguns quase prontos, mas falta tempo pra terminar. O que eu estou fazendo agora é um sobre como montar um ambiente para desenvolvimento android em linux para colocar aqui no fórum.

Se precisar de qualquer ajuda é só falar.

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


09 Jun 2011, 16:05
Perfil WWW
What is Android?
What is Android?

Data de registro: 06 Mai 2011, 18:37
Mensagens: 8
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Com certeza,... esta muito dificil achar um site interessante em portugues, todos que vi os mlhores eram somente estrangeiros...
Vai em frente mano..

abraço


12 Jun 2011, 11:22
Perfil
What is Android?
What is Android?

Data de registro: 10 Jun 2011, 16:26
Mensagens: 4
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Olá, eu nao conseguir rodar esse projeto, poderia mandar o projeto completo no meu email?
nishida_maximo@hotmail.com
obrigado!


14 Jun 2011, 15:57
Perfil
What is a Activity?
What is a Activity?

Data de registro: 17 Jan 2011, 20:07
Mensagens: 12
Localização: Itaperuna - RJ
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Falae galera!! Consegui fazer um exemplo parecido com esse... mas estou tomando uma surra pra colocar mais de uma imagem na tela... Alguém poderia me ajudar?


02 Ago 2011, 20:10
Perfil
What is Android?
What is Android?

Data de registro: 06 Set 2011, 17:14
Mensagens: 1
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
pessoal, desculpem-me pela minha ignorancia, eu estou tentando descobrir uma coisa mas nem sei se estou no lugar certo, como (me parece que) todos aqui entendem muito bem do assunto, eu nao vou perd a oportunidade de perguntar.
Eu preciso acessar um site e nele eu preciso arrastar alguns ícones de uma coluna para outra, mas eu nao consigo fazer isso de jeito nenhum. Nao sei se este tópico está relacionado a isso, mas eu gostaria que alguem me ajudasse, e claro, se possivel, tilizando-se de um linguajar simples para leigos no assunto.

Eu fico muito grato, pois esta função é extremamente importante pra mim...

Ate logo...

Rahfael Oliveira


06 Set 2011, 17:39
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 12 Mar 2011, 13:32
Mensagens: 109
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Amigo bom dia.
Poderia ser mais claro com relação a esse site?

Se eu bem entendi, você pode acessar sites do aparelho celular, sem problemas, claro tudo dentro dos recursos do seu aparelho.

Qualquer coisa poste aqui, com mais detalhes, que eu te ajudo.

_________________
Marcos Roberto da Fonseca
Desenvolvimento de software

Maiores informações:
http://zipersoft.com.br e tem também nosso blog: http://zipersoft.com.br/blog


09 Set 2011, 13:10
Perfil
What is Android?
What is Android?

Data de registro: 09 Nov 2012, 10:38
Mensagens: 1
Mensagem Re: Movimentação de Imagem na tela usando o TouchScreen
Olá, como você faria agora para salvar a imagem de fundo mais a imagem que o usuário posicionou na tela numa mesma imagem?


09 Nov 2012, 10:44
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 20 Mensagens ] 

Quem está online

Usuários vendo este fórum: (_FM_), Abraao, Adeja, adelar, AdrianoMM, Alan Unger, alex.abrantes, Alexandre Castro, amos, Analista, Anderson MarkZ, Andre Brito, ANDRE FELIX DE ASSIS, andre.hebeler, andrelom, andrewort, arnaldo.miranda, AT-AT, augustomig, avsouza, bocajunior88, bomcabelo, caio, caliow, canaville, Carla Luz, cassianotartari, Cassius, cavenaghi, celiapinheiro, cfranca, Chaves, Cr-Informática, Cristranus, dallari, DAVINCE, deborazb, Diego Rufino, dreyer, edervieira, edlinux, eferrari, estratec, estratecnologia, eXagon, fabiano_eletro, faco, flashking, flaviojps, frances135, freak, FVB, germanno, Google Desktop, gphonemania, Gui Pereira, guiba_picolino, guitarro17, helder84, hostdesigner, ismaels, jacksaum, jairo, jairom, jandersonjc, jeanbr07, jefficojava, joaquimfoto, jpespindola, juliaojunior, jzaires, Ki-Adi-Mundi, kidush, klebersilvarocha, klyff, leofernandesmo, Lincoln, linukiss, Lord, luciano.sml, lucianoalves, Marcelo, Marcelo Lima, marcelocastellani, Marco Magoo, Mayara Trevisol, mcroft, mmiottobarbosa, n3t0, nakahara, navegador, neuhaus, nishimura.ichigo, nivaldo, osternack, paulabr, pedro, pemam.com.br, peterson.bah, piagg, pilon, pingumanbr, pmzara, Qui-Gon Jinn, Rafael Felix, raninhofernandes, raulcca, rdchaves, renan.fernandes, rerp7, rodrigo aguiar, rogerio.alcantara, romualdo, ronamore, ronanPlus, rubens_olv, ruizsa, Samantha, Samuka, siker C3PO, silvio.carlos, talves, Tangerina, teamamus, thiagotomais, thosjanas, tiagocomerio, Tognoli, ton.soares, Transtago, vicfalmac, VILESOFT, vilmartr, viniciusluiz, W3 [Sitesearch], wesley.messias, Wookiees, woyzeck, Wryel, wylken, xGambit, xikin, YaCy, zorieuq e 10 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:
cron

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi