SDK do Android: criando visualizações personalizadas

A plataforma Android oferece uma ampla variedade de itens de interface do usuário que são suficientes para as necessidades da maioria dos aplicativos. No entanto, pode haver ocasiões em que você sinta a necessidade de implementar uma interface de usuário personalizada para um projeto em que está trabalhando. Neste tutorial, trabalharemos no processo de criação de uma visualização personalizada.

Para criar e usar nossa View customizada, vamos estender a classe View, definir e especificar alguns atributos customizados, adicionar a View ao nosso XML de layout, substituir o onDraw para personalizar a aparência da View e manipulá-la da Activity principal do nosso aplicativo.


Passo 1: Criar um projeto Android

Crie um novo projeto Android no Eclipse. Você pode escolher as configurações que desejar, desde que seu aplicativo tenha uma classe Activity principal e um arquivo de layout para ela. Não precisamos de nenhuma alteração no arquivo Manifesto. No arquivo de download do código-fonte, a Activity principal é chamada de “LovelyActivity” e o arquivo de layout é “activity_lovely.xml” – altere o código para se adequar aos seus próprios nomes, se necessário. Estaremos criando e adicionando alguns arquivos adicionais à medida que avançamos.


Passo 2: Criar uma classe de visualização

Nossa visualização personalizada pode estender qualquer uma das classes Android View existentes, como Button ou TextView. No entanto, criaremos uma subclasse direta de View. A extensão de uma classe existente permite que você use a funcionalidade e o estilo existentes associados a essa classe, enquanto fornece processamento para atender às suas próprias necessidades adicionais.

Crie uma nova classe em seu aplicativo selecionando o pacote principal do aplicativo no Eclipse e escolhendo “File”, “New”, “Class”. Digite um nome de sua escolha e clique em “Concluir”. O código do tutorial usa o nome da classe “LovelyView” – você precisará alterá-lo em todo o código abaixo se escolher um nome diferente. Faça sua nova classe estender View adicionando à sua linha de declaração de abertura:

Adicione as seguintes instruções de importação acima disso:


Etapa 3: Criar recursos de atributo

Para usar nossa Visualização personalizada como usaríamos uma Visualização padrão (ou seja, definir seus atributos no layout XML e referenciá-los em nosso código Java), declararemos recursos de atributo. No Eclipse, crie um novo arquivo na pasta “res/values” do seu projeto selecionando-o e escolhendo “File”, “New”, “File”. Digite “attrs.xml” como o nome do arquivo e clique em “Concluir”.

No arquivo de atributos, primeiro precisamos indicar que estamos listando recursos, então adicione o seguinte elemento pai:

Dentro deste elemento, vamos declarar três atributos para a View que nos permitirá estilizá-la. Vamos manter as coisas relativamente simples – a View exibirá um círculo com algum texto no meio. Os três atributos serão a cor do círculo, o texto String e a cor do texto. Adicione o seguinte dentro do seu Recursos elemento:

o com estilo de declaração O elemento especifica o nome da visualização. Cada atributo tem um nome e formato. Poderemos especificar esses atributos no XML do layout quando adicionarmos a View personalizada e também recuperá-los na classe View. Também poderemos recuperar e definir os atributos de nossa classe Java Activity. Os valores fornecidos para cada atributo precisarão ser do tipo listado aqui como formato.


Passo 4: Adicione a vista ao layout

Vamos adicionar uma instância da View personalizada ao arquivo de layout principal do nosso aplicativo. Para especificar a visualização personalizada e seus atributos, precisamos adicionar um atributo ao elemento de layout pai. No download fonte, é um Esquema relativo mas você pode usar o tipo que preferir. Adicione o seguinte atributo ao elemento pai do seu layout:

Altere “your.package.name” para refletir o pacote em que seu aplicativo está. Isso especifica o namespace do nosso aplicativo, permitindo-nos usar os atributos que definimos dentro dele. Agora podemos adicionar uma instância da nova View. Dentro do layout, adicione-o da seguinte forma:

Novamente, altere o nome do pacote para se adequar ao seu, e o nome da classe, se necessário. Usaremos o ID para fazer referência à View em nosso código de atividade. Observe que o elemento lista os atributos de visualização padrão junto com os atributos personalizados. Os atributos personalizados são precedidos por “custom:” e usam os nomes que especificamos em nosso arquivo XML de atributos. Observe também que especificamos valores dos tipos que indicamos usando o formato atributos no arquivo “attrs.xml”. Vamos recuperar e interpretar esses valores em nossa classe View.


Etapa 5: Recupere os Atributos

Agora vamos voltar para a classe View que criamos. Dentro da declaração da classe, adicione algumas variáveis ​​de instância da seguinte forma:

Usaremos os três primeiros para acompanhar as configurações atuais de cor e texto. O objeto Paint é para quando desenhamos a View. Após essas variáveis, adicione um método construtor para sua classe:

Como estamos estendendo a classe View, a primeira coisa que fazemos é chamar o método da superclasse. Depois de super chamada, vamos estender o método para configurar a View. Primeiro instancie o objeto Paint:

Agora vamos recuperar os valores de atributo que definimos em XML:

Essa matriz digitada fornecerá acesso aos valores de atributo. Observe que usamos o nome do recurso que especificamos no arquivo “attrs.xml”. Vamos agora tentar recuperar os valores dos atributos, usando um tentar bloquear caso algo dê errado:

Lemos os atributos em nossas variáveis ​​de instância. Observe que usamos os nomes listados para cada um em “attrs.xml” novamente. As cores são recuperadas como valores inteiros e o rótulo de texto como uma String.

Esse é o método construtor completo – no momento em que for executado, a classe deve ter recuperado os atributos View selecionados que definimos no arquivo de recursos de atributo e definido os valores no layout XML.


Etapa 6: Desenhe a vista

Agora temos nossos atributos View na classe, então podemos ir em frente e desenhá-lo. Para fazer isso, precisamos substituir o onDraw método. Adicione seu contorno após seu método construtor da seguinte forma:

Já que vamos desenhar um círculo, vamos pegar algumas informações sobre o espaço disponível, dentro do onDraw método:

Agora podemos calcular o raio do círculo:

Agora vamos definir algumas propriedades para pintar com:

Agora usaremos a cor do círculo selecionada conforme armazenada em nossa variável de instância:

Isso significa que o círculo será desenhado com qualquer cor listada no layout XML. Vamos desenhá-lo agora usando estes detalhes:

Agora vamos adicionar o texto. Primeiro, defina a cor usando o valor recuperado do XML do layout:

Agora defina mais algumas propriedades:

Finalmente, podemos desenhar o texto, usando a string de texto recuperada:

Isso é onDraw completo.


Etapa 7: Fornecer métodos Get e Set

Ao criar uma Visualização personalizada com seus próprios atributos, é recomendável que você também forneça pegue e definir métodos para eles em sua classe View. Depois de onDraw método, primeiro adicione o pegue métodos para os três atributos personalizáveis:

Cada método simplesmente retorna o valor solicitado. Agora adicione o definir métodos para os atributos de cor:

Esses métodos aceitam int parâmetros que representam a cor a ser definida. Em ambos os casos, atualizamos a variável de instância em questão e solicitamos que a View seja redesenhada. Isso fará com que o onDraw execute novamente, para que os novos valores afetem a View exibida ao usuário. Agora adicione o definir método para o texto:

Este é o mesmo que os outros dois definir métodos exceto para o parâmetro String. Chamaremos esses métodos em nossa classe Activity a seguir.


Etapa 8: Manipular a visualização da atividade

Agora que temos o básico de nossa View customizada, vamos demonstrar usando os métodos dentro de nossa classe Activity. Na classe Activity principal do aplicativo, adicione as seguintes instruções de importação:

Antes de o onCreate método, dentro da declaração de classe, adicione uma variável de instância representando a instância da View personalizada exibida:

Dentro de onCreate método, após o código existente, recupere-o usando seu ID conforme incluído no arquivo de layout XML:

Para demonstrar a configuração dos valores do atributo View da Activity, adicionaremos um botão simples. Abra seu arquivo de layout e adicione-o após o elemento View personalizado:

Especificamos um método para executar nos cliques do usuário – adicionaremos isso à classe Activity. Primeiro adicione a String ao seu arquivo XML “res/values/strings”:

Agora volte para a classe Activity e adicione o método listado para cliques no botão:

Vamos usar o definir métodos que definimos para atualizar a aparência personalizada da View:

Obviamente, isso é apenas para demonstrar como você pode interagir com uma exibição personalizada em seu código de atividade. Quando o usuário clica no botão, a aparência da exibição personalizada será alterada.

Conclusão

Em geral, é aconselhável usar classes existentes do Android View sempre que possível. No entanto, se você sentir que precisa de um nível de personalização além das configurações padrão, criar suas próprias exibições personalizadas normalmente é simples. O que abordamos neste tutorial é realmente apenas o começo quando se trata de criar interfaces de usuário Android personalizadas. Consulte o guia oficial para obter informações sobre como adicionar interatividade e otimização às suas personalizações.

[ad_2]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *