Visualizzazione post con etichetta Android. Mostra tutti i post
Visualizzazione post con etichetta Android. Mostra tutti i post

mercoledì 25 aprile 2012

Android e i grafici: GraphView

Mi è capitato l'altro giorno, lavorando a un progetto personale, di dover mostrare dei grafici su alcuni dati memorizzati in un database sqlite. Android non offre nativamente la possibilità di usare i grafici ma esistono diverse librerie Java utilizzabili in Android. Molto interessante ho trovato la libreria GraphView di Jonas Gehring, facile da usare e abbastanza funzionale. Permette la creazione di grafici semplici come line chart e bar chart ma anche qualcosa di complesso come le serie multiple.
Vediamo ora un pezzo di codice che utilizza questa libreria.

Codice Java:


GraphViewData[] data = 
        new GraphViewData[data_from_db.size()];
       double v=0;
       for (int i=0; i<data_from_db.size(); i++) {
data[i] = new GraphViewData(i, data_from_db.get(i));
       }
GraphViewSeries exampleSeries= new GraphViewSeries("Sinus curve", Color.rgb(200, 50, 00), data);
GraphView graphView = new LineGraphView(this, "GraphViewDemo");
graphView.addSeries(exampleSeries); // data
graphView.setScrollable(true);
graphView.setHorizontalLabels(regioni);
graphView.setScalable(true);  
LinearLayout layout = (LinearLayout) findViewById(R.id.graph1);
layout.addView(graphView);
File Xml: 
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/ScrollView02" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
              xmlns:android="http://schemas.android.com/apk/res/android">
<HorizontalScrollView 
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="2000dip"
android:layout_height="500dip"
android:id="@+id/graph1" />
<TextView  
   android:id="@+id/legend"
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
android:textColor="#ffffff"
android:textSize="17sp" 
    />
  </LinearLayout>
    </HorizontalScrollView>
</ScrollView>

Il codice crea un serie a partire dal vettore data_from_db contenente i dati che vogliamo mostrare nel nostro grafico. Successivamente crea un oggetto di tipo GraphView che rappresenterà il nostro grafico e assegna a tale oggetto la serie creata in precedenza. Infine aggiunge il grafico al LinearLayout definito nel file xml.
Questo è il risultato ottenuto.



Una libreria facile da usare che offre diverse opzioni per rendere più gradevoli ed espliciti i propri grafici su Android. Per maggiori  informazioni consultare il blog ufficiale della libreria.

venerdì 27 gennaio 2012

Fai socializzare la tua app!

Ho scoperto di recente lavorando su una mia applicazione android un servizio davvero interessante. Il suo nome è socialize e permette di rendere la tua applicazione android o iOS più "sociale". In pratica è resa disponibile un Api gratuita che permette di aggiungere una barra contente diverse opzioni che rendono social l'app. Queste opzioni sono il classico "I like" stile facebook, un contatore delle visualizzazioni, la possibilità di condivisione del contenuto via facebook, email o sms e la possibilità di lasciare un commento anonimamente o loggandosi con il proprio account facebook. Ovviamente è possibile utilizzare anche il proprio account twitter invece dell'account di facebook.


Il servizio è gratuito se il traffico coinvolge meno di 100.000 utenti. Superate tale soglia occore comprare uno dei vari account premium proposti.
Ho inserito tale servizio nella mia applicazioni in quanto mi ha permesso in pochissimi passi di dare un aspetto social, che è tanto in voga oggi e comunque utile, alla mia applicazione.

Get Socialize!

giovedì 26 gennaio 2012

La storia di Android in 2 minuti


Ecco per voi un'immagine (fonte: http://www.xcubelabs.com) che riassume in 2 minuti tutta la cronologia delle varie versioni di Android dalla sua nascita ad oggi:



sabato 3 dicembre 2011

Android: fai vibrare la tua app

In questo post parleremo di come far vibrare la tua applicazione in uno specifico momento, ad esempio per segnalare un determinato evento.
La prima cosa da fare e quella di aggiungere i permessi nel manifesto dell'applicazione.


<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="...">
 <uses-permission android:name="android.permission.VIBRATE"/>
 <application android:label="...">
  ...
 </application>
</manifest>
Invece nel codice dell'applicazione va richiamato quanto segue

// Ottieni un istanza di Vibrator dal contesto corrente
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
 
// Attiva la vibrazione per 1 secondo
v.vibrate(1000);

La prima riga di codice  richiede un istanza dell'oggetto Vibrator dal contesto corrente e la memorizza nella variabile v. La seconda riga invece attiva semplicemente la vibrazione per 1 secondo.

Vedremo un utilizzo pratico della vibrazione in un post successivo dedicato alla gestione degli sms.

mercoledì 9 novembre 2011

Riprodurre audio in background nella tua App


Come riprodurre un file audio come sottofondo della propria applicazione? In android è molto semplice ovviamente! Prima di tutto android supporta 2 formati: MP3 e WAV. Creiamo una sottocartella chiamata "raw" nella cartella "res" del progetto. Copiamo i file audio nella cartella raw oppure se si usa Eclipse importiamoli con l'apposito comando.
Ora nell'Activity dove vogliamo venga riprodotto l'audio dichiariamo il seguente codice:

import android.media.MediaPlayer;

quindi importiamo per prima cosa la libreria "MediaPlayer". Dichiariamo poi una variabile come riferimento alla libreria MediaPlayer. La variabile va dichiarata subito dopo la definizione della classe

private MediaPlayer mp = null;

creiamo il metodo "playSound". Tale metodo crea un nuovo Thread in modo che l'audio sia riprodotto senza bloccare il Thread principale. Il metodo prende in input il nome del file da riprodurre.

    private void playSound(int sFile)
    {
    //set up MediaPlayer  
    final int medFile = sFile;
    Thread thread = new Thread(new Runnable()      
    {
          public void run()
          {
                mp = MediaPlayer.create(getApplicationContext(), medFile);
                mp.start();
          }
    });
    thread.start();      
    }
           
per far partire la riproduzione dell'audio copiamo il seguente frammento di codice nel punto dove vogliamo parta la riproduzione

playSound(R.raw.mysoundfile);

infine per fermare la riproduzione dell'audio basta utilizzare la seguente istruzione

mp.stop();