Android

Aplicacion tubemate

TubeMate es una aplicación para Android cuyo objetivo no es otro que el de descargar vídeos de Youtube. El proceso es bien sencillo, pues tan solo tenemos que introducir la url del vídeo a descargar en la aplicación para que esta comience el proceso después de que elijamos en qué calidad queremos el vídeo. Lógicamente, a mayor calidad mayor será el tamaño del archivo descargado.

Tubemate

Además, tiene una características realmente interesante, pues gracias a su combinación con MP3 Media Converter, es capaz de convertir a MP3 cualquier vídeo descargado, algo tremendamente útil en el caso de vídeos musicales, ya que el resultado será la canción como tal, en un formato perfectamente reproducible para prácticamente cualquier reproductor.

Lo mejor de todo, como ya hemos comentado, es que TubeMate es una aplicación totalmente gratuita, por lo que puedes descargar gratis los vídeos de Youtube sin ningún tipo de coste, al contrario que en otras aplicaciones y/o servicios varios.

La descarga la puedes realizar desde distintos servidores, y para saber cuáles son puedes entrar a la zona de descargas de su página web oficial, en la cual encontrarás toda la información necesaria sobre esta aplicación. Cabe destacar que no es una aplicación que se encuentre disponible en Google Play, por lo que tendremos que tener la opción de orígenes desconocidos activada para posteriormente descargar el archivo de instalación .apk y de esta forma poder instalar TubeMate.

Leer más

Descargar tubemate gratis para android

No cabe duda alguna de que YouTube es la plataforma de vídeos online más grande y popular del mundo con millones y millones de vídeos que lo convierten en una muy buena fuente de todo tipo de material, aunque tiene como pega el no permitir descargar vídeos, por lo que no se puede consultar su contenido offline. Pero por suerte, existen algunas soluciones para ello, como es descargar TubeMate gratis.

Para quien no la conozca, TubeMate es una aplicación para Android cuyo objetivo no es otro que el de descargar vídeos de Youtube. El proceso es bien sencillo, pues tan solo tenemos que introducir la url del vídeo a descargar en la aplicación para que esta comience el proceso después de que elijamos en qué calidad queremos el vídeo. Lógicamente, a mayor calidad mayor será el tamaño del archivo descargado.

Tubemate

Además, tiene una características realmente interesante, pues gracias a su combinación con MP3 Media Converter, es capaz de convertir a MP3 cualquier vídeo descargado, algo tremendamente útil en el caso de vídeos musicales, ya que el resultado será la canción como tal, en un formato perfectamente reproducible para prácticamente cualquier reproductor.

Lo mejor de todo, como ya hemos comentado, es que TubeMate es una aplicación totalmente gratuita, por lo que puedes descargar gratis los vídeos de Youtube sin ningún tipo de coste, al contrario que en otras aplicaciones y/o servicios varios.

Leer más

Bajar Tubemate Youtube

YouTube es la plataforma de vídeos online más grande y popular del mundo con millones y millones de vídeos que lo convierten en una muy buena fuente de todo tipo de material, aunque tiene como pega el no permitir descargar vídeos, por lo que no se puede consultar su contenido offline. No obstante, existen algunas soluciones para ello, como es descargar TubeMate gratis.

TubeMate es una aplicación para Android cuyo objetivo no es otro que el de descargar vídeos de Youtube. El proceso es bien sencillo, pues tan solo tenemos que introducir la url del vídeo a descargar en la aplicación para que esta comience el proceso después de que elijamos en qué calidad queremos el vídeo. Lógicamente, a mayor calidad mayor será el tamaño del archivo descargado.

Bajar Tubemate Youtube

Además, tiene una características realmente interesante, pues gracias a su combinación con MP3 Media Converter, es capaz de convertir a MP3 cualquier vídeo descargado, algo tremendamente útil en el caso de vídeos musicales, ya que el resultado será la canción como tal, en un formato perfectamente reproducible para prácticamente cualquier reproductor.

Lo mejor de todo, como ya hemos comentado, es que TubeMate es una aplicación totalmente gratuita, por lo que puedes descargar gratis los vídeos de Youtube sin ningún tipo de coste, al contrario que en otras aplicaciones y/o servicios varios.

La descarga la puedes realizar desde distintos servidores, y para saber cuáles son puedes entrar a la zona de descargas de su página web oficial, en la cual encontrarás toda la información necesaria sobre esta aplicación. Cabe destacar que no es una aplicación que se encuentre disponible en Google Play, por lo que tendremos que tener la opción de orígenes desconocidos activada para posteriormente descargar el archivo de instalación .apk y de esta forma poder instalar TubeMate.

Leer más

Tubemate, una aplicación gratuita y muy útil para bajar vídeos

No cabe duda alguna de que YouTube es la plataforma de vídeos online más grande y popular del mundo con millones y millones de vídeos que lo convierten en una muy buena fuente de todo tipo de material, aunque tiene como pega el no permitir descargar vídeos, por lo que no se puede consultar su contenido offline. Pero por suerte, existen algunas soluciones para ello, como es descargar TubeMate gratis.

Para quien no la conozca, TubeMate es una aplicación para Android cuyo objetivo no es otro que el de descargar vídeos de Youtube. El proceso es bien sencillo, pues tan solo tenemos que introducir la url del vídeo a descargar en la aplicación para que esta comience el proceso después de que elijamos en qué calidad queremos el vídeo. Lógicamente, a mayor calidad mayor será el tamaño del archivo descargado.

Tubemate

Además, tiene una características realmente interesante, pues gracias a su combinación con MP3 Media Converter, es capaz de convertir a MP3 cualquier vídeo descargado, algo tremendamente útil en el caso de vídeos musicales, ya que el resultado será la canción como tal, en un formato perfectamente reproducible para prácticamente cualquier reproductor.

Lo mejor de todo, como ya hemos comentado, es que TubeMate es una aplicación totalmente gratuita, por lo que puedes descargar gratis los vídeos de Youtube sin ningún tipo de coste, al contrario que en otras aplicaciones y/o servicios varios.

La descarga la puedes realizar desde distintos servidores, y para saber cuáles son puedes entrar a la zona de descargas de su página web oficial, en la cual encontrarás toda la información necesaria sobre esta aplicación. Cabe destacar que no es una aplicación que se encuentre disponible en Google Play, por lo que tendremos que tener la opción de orígenes desconocidos activada para posteriormente descargar el archivo de instalación .apk y de esta forma poder instalar TubeMate.

Leer más

MomentCam, divertida aplicación para crear caricaturas con nuestro Smartphone

Queremos hablaros sobre una aplicación que me ha llamado mucho la atención. Se trata de la aplicación llamada MomentCam. Con este curioso nombre, la empresa Hightalk Software Corp.  ha desarrollado una aplicación muy original que está triunfando tanto en Android como en iPhone.

La funcionalidad de esta app es básica: Crear una caricatura a través de una foto obtenida con la cámara de nuestro Smartphone. Por ello, una vez descargada, el primer paso es elegir el tipo de caricatura que deseamos y acto seguido, se activará la cámara de nuestro Smartphone, para sacar una foto a la cara de la que deseamos obtener la caricatura. También existe la posibilidad de utilizar una imagen de la galería, si es que tenemos alguna imagen que queramos utilizar. ¿Lo mejor de todo? Pues lo mejor es que podrás tener MomentCam para Android gratis (o para iPhone, en caso de que tengas un Smartphone de la marca de Apple), ya que sus creadores han puesto esta app de forma gratuita para su descarga.

El desarrollo de esta aplicación creemos que habrá sido complejo, ya que no se trata de una tarea sencilla el conseguir que una fotografía se convierta en una caricatura de una forma tan fiel y realista como lo hace esta app. Además, no sólo se han quedado ahí, sino que la caricatura de la foto que hayamos sacado mediante la cámara de nuestro teléfono, podremos colocarla en diferentes escenarios, pudiendo elegir entre escenas en las que aparezca una única persona o escenas con varias personas (en este caso tendremos que encajar las caricaturas que obtengamos de cada persona en su correspondiente lugar).

momentcam aplicacion caricaturas

Por ello, sus creadores no se han conformado únicamente en desarrollar una app que genere una caricatura, sino que han tratado cuidadosamente que luego podamos retocar la imagen, añadirle efectos, etc. Otra cosa que me ha resultado de lo más divertida ha sido que la app te da la posibilidad de colocar tu caricatura en animaciones de lo más graciosas, que luego tienes la posibilidad de compartir en las redes sociales o con tus amigos.

Sin duda alguna, un ejemplo de caso de éxito de una app para smartphones, ya que han creado una herramienta original, divertida y útil que estamos seguros conseguirá miles o incluso millones de descargas.

Fuente: Descargar MomentCam

Leer más

Ajustar TextView Android

Cómo expandir el texto de un TextView para ajustarlo al alto y ancho aumentando el tamaño de la fuente en Android

He estado buscando sobre cómo aumentar la fontsize de un TextView en Android para que quede lo más grande posible dentro de un TextView, sin aumentar el tamaño de dicho TextView. Para mi sorpresa, no hay una manera directa, sino que hay que ir probando los tamaños de las fuentes uno a uno, hasta ver cuál es el adecuado. Obviamente, esto no se hará mostrándolo al usuario, aunque sería gracioso/cutre ver como va aumentando la fuente hasta ajustarse.

Algoritmos: he visto varios por StackOverflow que ajusta el ancho perfectamente, con varias variantes si se pasa de largo, o lo divide en varias lineas(obligando al TextView tener una altura de wrap_content y no fija porque si no, no se ve el texto), o añadiendo puntos suspensivos si se ve que se va a partir en varias lineas e incluso uno que usaba un getMeasuredHeight() para tomar la altura y funcionaba perfectamente en casi todos los dispositivos. Sin embargo, en un Samsung GT-N7102, dicho método devolvía datos incoherentes y tuve que buscar otro camino.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/**
 * Mod of Andreas Krings AutoScaleTextView in order to support resizing according to the TextView height.
 * It works perfectly in all the devices I have tried (Nexus 4, HTC One, HTC Wildfire S, GT-N7102)
 * 
 * @author Héctor Berlanga - www.codigojavaoracle.com
 * @version 1.1
 * 
 */
/**
 * A custom Text View that lowers the text size when the text is to big for the
 * TextView. Modified version of one found on stackoverflow
 * 
 * @author Andreas Krings - www.ankri.de
 * @version 1.0
 * 
 */
public class AutoScaleTextView extends TextView {
    private Paint textPaint;
 
    private float preferredTextSize;
    private float minTextSize;
 
    public AutoScaleTextView(Context context) {
        this(context, null);
    }
 
    public AutoScaleTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.textPaint = new Paint();
        this.minTextSize = 2;
        this.preferredTextSize = 200;
    }
 
    /**
     * Set the minimum text size for this view
     * 
     * @param minTextSize
     *            The minimum text size
     */
    public void setMinTextSize(float minTextSize) {
        this.minTextSize = minTextSize;
    }
 
    /**
     * Resize the text so that it fits
     * 
     * @param text
     *            The text. Neither <code>null</code> nor empty.
     * @param textWidth
     *            The width of the TextView. > 0
     */
    private void refitText(String text, int textWidth) {
        this.minTextSize = 2;
        this.preferredTextSize = 200;
        if (textWidth <= 0 || text == null || text.length() == 0)
            return;
 
        // the width
        int targetWidth = textWidth - this.getPaddingLeft()
            - this.getPaddingRight();
        int targetHeight = this.getHeight() - this.getPaddingTop()
            - this.getPaddingBottom();
 
        final float threshold = 0.5f; // How close we have to be
 
        this.textPaint.set(this.getPaint());
 
        while ((this.preferredTextSize - this.minTextSize) > threshold) {
            float size = (this.preferredTextSize + this.minTextSize) / 2;
            this.textPaint.setTextSize(size);
            int textHeight = getTextHeight(text, this.getPaint(), targetWidth,
                size);
 
            if (this.textPaint.measureText(text) >= targetWidth
                || textHeight >= targetHeight) {
            this.preferredTextSize = size; // too big
            } else {
            this.minTextSize = size; // too small
            }
        }
        // Use min size so that we undershoot rather than overshoot
        this.setTextSize(TypedValue.COMPLEX_UNIT_PX, this.minTextSize);
    }
 
    @Override
    protected void onTextChanged(final CharSequence text, final int start,
        final int before, final int after) {
        this.refitText(text.toString(), this.getWidth());
    }
 
    @Override
    protected void onSizeChanged(int width, int height, int oldwidth,
        int oldheight) {
        if (width != oldwidth)
            this.refitText(this.getText().toString(), width);
    }
 
    // Set the text size of the text paint object and use a static layout to
    // render text off screen before measuring
    private int getTextHeight(CharSequence source, TextPaint originalPaint,
        int width, float textSize) {
        // Update the text paint object
        // modified: make a copy of the original TextPaint object for measuring
        // (apparently the object gets modified while measuring, see also the
        // docs for TextView.getPaint() (which states to access it read-only)
        TextPaint paint = new TextPaint(originalPaint);
        // Update the text paint object
        paint.setTextSize(textSize);
        // Measure using a static layout
        StaticLayout layout = new StaticLayout(source, paint, width,
            Alignment.ALIGN_CENTER, 1.0f, 0.0f, true);
    return layout.getHeight();
    }
}

Al grano, he modificado la clase AutoScaleTextView de Andreas Krings, que funciona perfectamente ajustandose al ancho del TextView, pero que no tiene en cuenta la altura de dicho TextView.

El funcionamiento es el siguiente: cada vez que se cambia el texto o el tamaño, se recalcula el fontsize. Para recalcular el máximo fontsize permitido, se creará un TextPaint, que no se mostrará al usuario, se le cambiará el fontsize y se probará que encaje dentro de las dimensiones iniciales. El ancho se obtendrá directamente desde measureText(). Para calcular el alto se medirá la altura de un StaticLayout creado a partir del TextPaint.

Como he dicho, he visto formas más sencillas de realizar lo mismo, todas recalculando el fontsize a prueba y error, pero en mi caso, no me funcionaban en todos los dispositivos.

Espero que, si estáis en mi mismo caso, esta clase pueda ayudaros.

Lo podéis descargar en pastebin también

Leer más

Hola Mundo en Android

Crear tu primer hola mundo en Android es realmente fácil, una vez que tengas todo instalado, solo tienes que de crear tu proyecto desde Eclipse siguiendo los siguientes pasos

- Seleccionar Aplication Android Proyect.
- Escoger un nombre para tu proyecto.
- Después escoger la versión para la que se desarrollará el proyecto,
- Escoger el icono de la aplicación.
- Seleccionar blank activity (es el que viene por defecto).

Y listo, con esto tendremos nuestro primer “hello world“.

Para mostrarlo tendremos que virtualizar un dispositivo móvil desde el “Android Virtual Device Manager” que es el que muestra la siguiente imagen. O bien enganchar nuestro móvil por USB y seleccionar la opción para poder correr el programa en nuestro móvil.

virtualizar

Con esto ya podríamos ver en el móvil nuestro primer “hello world”, sin necesidad de escribir una sola linea, ya que Eclipse lo muestra por defecto.

hola mundo hello world

El código que genera Eclipse es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.pruebas.mig221;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
 
}

Esta línea es la que muestra el layout o la capa que vas a ver en el móvil

1
2
 
setContentView(R.layout.activity_main);

Llamará al layout que se encuentra en tu carpeta de recursos que se llama activity_main, y entre otras cosas activity_main.xml tiene una línea en la que indica el texto que se va a mostrar por pantalla, es la siguiente línea:

1
  android:text="@string/hello_world" />

Para encontrar dónde está este texto tendríamos que ir a la carpeta values’ donde finalmente encontraremos el texto que mostramos por pantalla, sería la siguiente línea:

1
    <string name="hello_world">Hello world! Aquí estoy</string>

¿Por qué se hace así de complicado?

Pues la verdad que sería más sencillo poner un string con un texto y listo, pero en el caso de que tengamos que hacer una aplicación en varios idiomas nos resultaría mucho más fácil escoger texto que necesitemos para cada idioma independientemente de la funcionalidad del programa.

Leer más

Integrar Eclipse y Android

Desarrollar aplicaciones para Android utilizando Eclipse

En este artículo vamos a incorporar a nuestro entorno de desarrollo Eclipse la necesario para poder desarrollar aplicaciones para Android.

Descargar Eclipse

Primero, tenemos que bajarnos nuestro IDE Eclipse, lo podemos realizar a través de la propia web de Eclipse. Seleccionando la opción que más nos interese Web Eclipse o bien podeis utilizar esta versión:
Eclipse IDE for Java EE Developers
Solo hace falta descargar la versión de 32 o 64 bits que necesites y descomprimirla, con esto ya tendrás tu Eclipse a punto parar poder ejecutarlo.

Descargar el SDK de Android

Como segundo paso, necesitaremos el SDK de Android que podemos descargarlo desde aquí http://developer.android.com/sdk/installing/index.html

Una vez descargado lo instalamos y corremos la aplicación Android SDK Manager, aquí chekeamos lo que vamos a necesitar y nos lo instalará en la dirección que queramos.
En este caso hemos instalado las opciones que veis marcadas en la siguiente imagen

android configuración eclipse sdk

Integrar Android con Eclipse

Para integrar el SDK de Android con Eclipse vamos a ejecutar nuestro Eclipse y desde la última opción ‘Help’ vamos a ‘Instalar nuevo Software’.Esto abrirá un menu contextual en el que debemos de hacer click en el boton ‘Add’ para escribir la url desde la que vamos a bajarnos un plugin que permita integrar Eclipse y Android.

La url que tenéis que escribir es esta:

https://dl-ssl.google.com/android/eclipse/

o bien esta:

http://dl-ssl.google.com/android/eclipse/

Después de escribir la url buscará el plugin y nos mostrará los plugin que debemos de instalar, los seleccionamos haciendo ‘check’ y los instalará en nuestro equipo. Lo podéis ver en la imagen que hay a continuación.

integrar android eclipse sdk

Indicar las rutas

Por último, debemos de indicar a Eclipse la ruta en la que hemos instalado nuestro Software Developer Kit de Android en el segundo paso.
Para esto nos dirigimos a ‘Windows‘ después a ‘Preferencias‘, seleccionamos Android y nos mostrará la ruta donde está nuestro SDK, si no es así tendremos que escribirla nosotros.
En mi caso está en la partición F:/Android, le decimos ‘Ok’ y finalmente ya tendremos nuestro entorno de desarrollo preparado para poder utilizarlo.

android sdk configuración integrar eclipse

Leer más

Realidad aumentada Google Project Glass

Desde hace algún tiempo se pueden ver por la red videos de realidad aumentada, muchos de ellos utilizando dispositivos móviles.

Ahora Google va un paso más lejos y nos presenta Google Project Glass.
En este proyecto Google nos quiere mostrar su particular visión de la realidad aumentada y las ventajas que puede tener.

El prototipo es francamente bueno y según Google tardará al menos dos años en salir, el video muestra los detalles para que os podáis hacer una idea.

[youtube]http://www.youtube.com/watch?v=9c6W4CCU9M4&feature=youtu.be&hd=1[/youtube]

No obstante, el autor de este video “ADmented Reality – Google Glasses Remixed with Google Ads” nos muestra como finalmente será el dispositivo de Google si llega a ver la luz, en el que obviamente la realidad aumentada estará vinculada a muchísima publicidad.

[youtube]http://www.youtube.com/watch?v=vX_z3CdNhMU[/youtube]Leer más

GPS con Android | Mostrar tu posición

GPS con Android

Esta entrada contiene el código de una aplicación “GPS con Android” desarrollada para la versión 2.4 o superior en la que mostramos las coordenadas GPS en las que nos encontramos.

La aplicación muestra una imagen (un camioncito) en la posición en la que estamos en ese momento e indica la latitud y la altitud. Estas coordenadas se pueden mostrar en cualquier mapa como por ejemplo Google Maps, además podéis realizar una actualización de la posición pasándole un parámetro de tiempo que refrescará nuestros datos en el tiempo que hayáis indicado en la variable.

El código de la mini aplicación GPS con Android está comentado con bastantes explicaciones, si necesitáis alguna más podéis dejar un comentario y os responderemos en breve.

Este es el código:

Código GPS con Android

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
package spawn.gps;
 
import java.io.IOException;
import java.util.List;
import java.util.Locale;
 
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.widget.Toast;
 
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
 
//GPS con Android 
 
public class GpsActivity extends MapActivity {
 
    private MapView mapView;
    private MapController mc;
 
    private ParticularItemizedOverlay itemizedoverlay;
    private Geocoder geoCoder;
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        LocationManager milocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        milocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, new MiLocationListener());
        mapView = (MapView) findViewById(R.id.mapview);
        mc = mapView.getController();
        mapView.setBuiltInZoomControls(true);
 
        Drawable drawable = this.getResources().getDrawable(R.drawable.ic_camion);
        itemizedoverlay = new ParticularItemizedOverlay(drawable,this);
        geoCoder = new Geocoder(this, Locale.getDefault());
    }
 
    protected boolean isRouteDisplayed() {
        return false;
    }
 
    public class MiLocationListener implements LocationListener{
        public void onLocationChanged(Location loc){
        	if (loc != null) {
		        double lat = loc.getLatitude();
		        double lon = loc.getLongitude();
		        String coordenadas = "Se ha movido a: " + "Latitud = " + lat + "Longitud = " + lon;
		        Toast.makeText( getApplicationContext(),coordenadas,Toast.LENGTH_LONG).show();
                GeoPoint point = new GeoPoint((int) (lat),(int) (lon));
                mc.animateTo(point);
                String address="";
 
                //mc.setZoom(16); 
///////////////////////////
                try {
                	geoCoder.getFromLocation(40,  4, 1);
                    //List<Address> addresses = geoCoder.getFromLocation(lat/1E6,  lon/1E6, 1);
                    //if (addresses.size() > 0) {
                    //    for (int i = 0; i < addresses.get(0).getMaxAddressLineIndex(); i++)
                    //       address += addresses.get(0).getAddressLine(i) + "\n";
                    //}
 
                } catch (IOException e) {
                	System.out.println("oooo que penita");
                    e.printStackTrace();
                }
///////////////////////////
                //Saco un icono con dicha geolocalización
                List<Overlay> mapOverlays = mapView.getOverlays();
                //Drawable drawable = this.getResources().getDrawable(R.drawable.ic_launcher);
                //GeoPoint point = new GeoPoint(-4443769,40115845);
                OverlayItem overlayitem = new OverlayItem(point, "Está aquí", address);
                itemizedoverlay.addOverlay(overlayitem);
                mapOverlays.add(itemizedoverlay);
 
                mapView.invalidate();
        	}
        }
        public void onProviderDisabled(String provider){
        	Toast.makeText( getApplicationContext(),"Gps Desactivado",Toast.LENGTH_SHORT ).show();
        }
        public void onProviderEnabled(String provider){
        	Toast.makeText( getApplicationContext(),"Gps Activo",Toast.LENGTH_SHORT ).show();
        }
        public void onStatusChanged(String provider, int status, Bundle extras){}
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
package spawn.gps;
 
import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
 
public class ParticularItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
 private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
 private Context mContext;
 
	 public ParticularItemizedOverlay(Drawable defaultMarker, Context context) {
		 super(boundCenterBottom(defaultMarker));
		 mContext = context;
	 }
 
	 public void addOverlay(OverlayItem overlay) {
		 mOverlays.add(overlay);
		 populate();
	 }
 
	 protected OverlayItem createItem(int i) {
		 return mOverlays.get(i);
	 }
 
	 public int size() {
		 return mOverlays.size();
	 }
 
	 protected boolean onTap(int index) {
		 OverlayItem item = mOverlays.get(index);
		 AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
		 dialog.setTitle(item.getTitle());
		 dialog.setMessage(item.getSnippet());
		 dialog.show();
		 return true;
	 }
}

Esta es la imagen del GPS en un móvil con Android:

GPS android

Aquí tenéis el código completo de la aplicación “GPS con Android“.

En este link tenéis el “autoinstalable de Android .Apk

Leer más