Android Studio, Gradle – Adicionando kSOAP2 como dependência (Adding kSOAP dependency to Gradle project)

android studio

Mais uma para a coleção de configuração de projetos no Android Studio. A facilidade do Gradle para incluir dependências é incrível, mais tem algumas regrinhas para aprender. Quando se trata de dependências do Android todas elas já estão lá bem acessíveis e com uma interface gráfica para facilitar a inclusão no ‘build.gradle’, porem quando vamos incluir uma dependência de outro repositório devemos configurar algumas coisas. O Gradle utiliza o Maven para facilitar essa inclusão, iremos configurar a inclusão da biblioteca ksoap2-android.

1 – Vamos abrir o ‘build.gradle’ do PROJETO, ele deve estar assim: Continue reading

Android Studio – Importanto a biblioteca Simple-Xml (Importing Simple-Xml library)

JavaXMLSimple-XML é uma biblioteca de serialização e configuração XML de alto desempenho para Java. Seu objetivo é proporcionar um mapeamento XML que permite o rápido desenvolvimento em XML. Essa biblioteca favorece ao desenvolvimento de sistemas de XML com o mínimo esforço e redução de erros. Dispõe de serialização de objeto completo e desserialização, mantendo cada referência encontrada. Veja mais como ela funciona e como utilzala em seu site: http://simple.sourceforge.net/home.php

Ao importarmos a biblioteca no Android Studio da seguinte maneira:

compile ‘org.simpleframework:simple-xml:2.7.1′

Acaba gerando os seguintes ERROS ao compilar o projeto:

=====================================
Warning:Dependency xpp3:xpp3:1.1.3.3 is ignored for debug as it may be conflicting with the internal version provided by Android.
In case of problem, please repackage it with jarjar to change the class packages
Warning:Dependency xpp3:xpp3:1.1.3.3 is ignored for release as it may be conflicting with the internal version provided by Android.
In case of problem, please repackage it with jarjar to change the class packages
=====================================
Error:Execution failed for task ‘:app:preDexDebug’.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/usr/lib/jvm/java/bin/java” finished with non-zero exit value 1
===================================
java.lang.NoClassDefFoundError: org.simpleframework.xml.core.Persister
=====================================

As Libraries stax-api e xpp3 entram em conflito com as classes do Android. As classes destes .jars parecem estar incluídas no Android.
Para solucionar devemos implementar as dependências da seguinte maneira: Continue reading

Android – Como espelhar uma imagem / inverter (Image Flipping / Mirroring)

flipA seguir como espelhar uma imagem horizontalmente ou verticalmente:

// definicao de tipo
public static final int FLIP_VERTICAL = 1;
public static final int FLIP_HORIZONTAL = 2;
 
public static Bitmap flip(Bitmap src, int type) {
    // criar new matrix para transformacao
    Matrix matrix = new Matrix();
    // if vertical
    if(type == FLIP_VERTICAL) {
        // y = y * -1
        matrix.preScale(1.0f, -1.0f);
    }
    // if horizonal
    else if(type == FLIP_HORIZONTAL) {
        // x = x * -1
        matrix.preScale(-1.0f, 1.0f);
    // unknown type
    } else {
        return null;
    }
 
    // return image transformada
    return Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);
}

Android – Adeus launcher drawables, olá mipmaps!

mipmaps mipmap

No ultimo update do Android Studio para versão 1.1, o uso das pastas mipmaps se tornaram padrão.

O que mudou foi que as pastas para os lauchers drawables antes com este formato:

res/
    drawable-mdpi/ic_launcher.png (48x48 pixels)
    drawable-hdpi/ic_launcher.png (72x72)
    drawable-xhdpi/ic_launcher.png (96x96)
    drawable-xxhdpi/ic_launcher.png (144x144)
    drawable-xxxhdpi/ic_launcher.png (192x192)

Foram alteradas para mipmaps, deixando a nomenclatura drawable apenas para arquivos de PNG, JPEG, GIF ou arquivos de imagem, 9-Patch, e arquivos XML que descrevem formas Drawable ou objetos Drawable que contêm vários estados (normal, pressionados, ou focalizado). Veja o tipo de recurso Drawable.

Então ficamos com a seguinte estrutura para mipmaps: Continue reading

Android / Java – Como calcular distância entre dois pontos GPS

Android-Apps-GPS-Location-Tmobile-G1

Segue o método responsável pelo calculo, basta passar as duas coordenadas, latitude e longitude origem e destino. O retorno será em metros.

private double calculaDistancia(double lat1, double lng1, double lat2, double lng2) {
	//double earthRadius = 3958.75;//miles
	double earthRadius = 6371;//kilometers
	double dLat = Math.toRadians(lat2 - lat1);
	double dLng = Math.toRadians(lng2 - lng1);
	double sindLat = Math.sin(dLat / 2);
	double sindLng = Math.sin(dLng / 2);
	double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
			* Math.cos(Math.toRadians(lat1))
			* Math.cos(Math.toRadians(lat2));
	double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
	double dist = earthRadius * c;

	return dist * 1000; //em metros
}

Curso de Excel Avançado

Excel

Datas: 27/06 04/07 é 11/07 / Ribeirão Preto-SP

1. Conteúdo Programático

  • CONCEITO BÁSICOS

História da planilha eletrônica;
Elaboração e disposição de dados;
Dados x Informações.

  • FUNÇÕES MATEMÁTICAS.

Função SOMA;
Função PRODUTO;
Função SOMARPRODUTO;
Função SOMASE;
Função SOMASES.

  • FUNÇÕES ESTÁTISTICAS

Continue reading

Curso de Excel Avançado

Excel

Datas: 28/03/15, 18/04/15 e 25/04/15 / Ribeirão Preto-SP

1. Conteúdo Programático

  •  CONCEITO BÁSICOS

História da planilha eletrônica;
Elaboração e disposição de dados;
Dados x Informações.

  • FUNÇÕES MATEMÁTICAS.

Função SOMA;
Função PRODUTO;
Função SOMARPRODUTO;
Função SOMASE;
Função SOMASES.

  • FUNÇÕES ESTÁTISTICAS

Continue reading

Android – Como usar medidas DP, SP programaticamente (Use DIP, SP metrics programmatically)

Android minimizar

As unidades de medidas estão para facilitar nossa programação para diferentes telas, para definir no XML é bem simples, basta inserir a medida e depois a unidade (android:layout_width=”100dp”), porem quando vamos fazer programaticamente, por padrão a medida aceita é dada por PX (pixel).

O objectivo é o de calcular o número de pixels de acordo com um determinado valor na unidade escolhida. A baixo transformamos o valor de 20dp na quantidade de PX equivalente.

TextView tv0 = new TextView(this);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
tv0.setWidth(px);

Se você quiser as métricas em SP, por exemplo, você só precisa mudar o TypedValue de TypedValue.COMPLEX_UNIT_DIP para TypedValue.COMPLEX_UNIT_SP ou qualquer outra métrica que você deseja usar.

Lembre-se de utilizar corretamente as unidades (veja aqui).

Android Studio, Gradle – Adicionar dependências no projeto usando o Maven (Maven Dependencies with Android Studio / Gradle)

android studio

Mais uma para a coleção de configuração de projetos no Android Studio. A facilidade do Gradle para incluir dependências é incrível, mais tem algumas regrinhas para aprender. Quando se trata de dependências do Android todas elas já estão lá bem acessíveis e com uma interface gráfica para facilitar a inclusão no ‘build.gradle’, porem quando vamos incluir uma dependência de outro repositório devemos configurar algumas coisas. O Gradle utiliza o Maven para facilitar essa inclusão, iremos configurar a inclusão da biblioteca ksoap2-android.

1 – Vamos abrir o ‘build.gradle’ do PROJETO, ele deve estar assim: Continue reading