Buscando artículos sobre "Android"
4-enero-2016
admin

Picasso: Librería para manejar imágenes en Android

Picasso es una de las muchas librerías disponibles para la carga de imágenes en tu aplicación android. Con una simple línea de codigo como por ejemplo:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

Te evita el trabajo que conlleva realizar la carga de la imagen de manera manual: memoria automática, almacenamiento en cache, transformaciones complejas usando el mínimo de memoria, …

//Ejemplo de transformación:
Picasso.with(context).load(url).resize(50, 50).centerCrop().into(imageView)
//Ejemplo añadiendo una imagen por defecto por si falla la descarga:
Picasso.with(this).load("http://www.host.com/imagen.jpg")
      .error(R.drawable.error)
      .fit().transform(new RoundedTransformation()).into(imageView);
//dependencia Maven
< dependency>
  < groupId>com.squareup.picasso< /groupId>
  < artifactId>picasso< /artifactId>
  < version>2.5.2< /version>
< /dependency>

Documentación Oficial

27-diciembre-2015
admin

Interface Parcelable en Android

Esta interface se usa en Android para poder pasar objetos entre las Activities. A continuación se muestra un ejemplo de uso paso por paso:

Paso 1/ Crear una clase que implemente el interface Parcelable

public class User implements Parcelable{
	private String id;
	private String name;
	private String direccion;
        //La clase Comentario también debería un objeto Parcelable
	private List< Comentario> comments;

        ....getters y setters....
}

Paso 2/ Implementar los métodos describeContents y writeToParcel

	@Override
	public int describeContents() {
		return 0;
	}
	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(this.id); 
		dest.writeString(this.name);
		dest.writeString(this.direccion);
		dest.writeTypedList(this.comments);
	}

Paso 3/ Implementar un campo static llamado CREATOR

	public static final Parcelable.Creator< User> CREATOR = 
                                  new Parcelable.Creator< User>() {
	    @Override
	    public User createFromParcel(Parcel source) {
	        return new User(source);
	    }
	 
	    @Override
	    public User[] newArray(int size) {
	        return new User[size];
	    }
	 
	};


	private User(Parcel source) {
                // los campos se deben leer en el mismo orden que se han
                // escrito en writeToParcel
		this.id = source.readString();
		this.name = source.readString();
		this.direccion = source.readString();
		if (comments == null) {
			comments = new LinkedList< Comentario>();
		}
		source.readTypedList(comments, Comentario.CREATOR);
	}

Paso 4/ Para utilizarlo sería

//Al lanzar la nueva actividad se metería el objeto parcelable
Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("variableUser", user); //user sería un objeto User
startActivity(intent);
//en el create de la actividad lanzada se extraería
public class OtherActivity extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_second);
 
         User datos = getIntent().getParcelableExtra("variableUser");
     }
     ....
}

Documentación Oficial

20-diciembre-2015
admin

Añadir banner de publicidad Admob en Android

Documentación oficial

A modo de resumen sería:

1 – Incluir en el proyecto la depencia para utilizar Mobile Ads SDK.
‘com.google.android.gms:play-services-ads:8.3.0’

2 – Obtener el Ad Unit ID para tú aplicación se puede colocar en el strings.xml.
ca-app-pub-XXXXXXXXXXXXXXXX/NNNNNNNNNN

3 – Añadir en tu activity layout el AdView que contendrá el banner. (No olvidar incluir el namespace xmlns:ads=”http://schemas.android.com/apk/res-auto”)

    < com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
    < /com.google.android.gms.ads.AdView>

4 – Cargar el adview en la activity.

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends ActionBarActivity {

    ...

    protected void onCreate(Bundle savedInstanceState) {
        ....
        AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
    ...
}
10-septiembre-2015
admin

Cumplir legislación europea para el uso de cookies

Por ley estamos obligados a avisar al usuario del uso de cookies para su conocimiento. A continuación, algunas formas de adaptarnos a ello:

Para WordPress
Existen numerosos plugins que te permiten incorporarlo… uno de ellos es Cookie Notice. Bastante sencillo y fácil de utilizar. https://wordpress.org/plugins/cookie-notice/

Apps Android
Una solución bastante sencilla sería añadir una pantalla inicial avisando del uso de cookies.
Ejemplo de creación de pantalla de inicio: http://gerardoperrucci.com.ar/android/como-crear-un-pantalla-de-inicio-de-nuestras-app

Webs Personales
Se puede mostrar el mensaje de advertencia de forma manual en un sitio visible con un botón para aceptar. Almacenando en una cookie que ya se han aceptado las políticas de uso de cookies, para que deje de salir el mensaje.

function controlcookies() {
	document.getElementById("cookie1").innerHTML = "";
	createCookie('aviso_politicas_web', 1, 30);
}
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) 
              return c.substring(nameEQ.length,c.length);
    }
    return null;
}
    < p id="cookie1" style="text-align:center;width:100%;">
    Utilizamos cookies para asegurar que damos la mejor experiencia al 
usuario en nuestro sitio web. Si continúa utilizando este sitio
asumiremos que está de acuerdo.
    < button onclick="controlcookies()">Aceptar< /button>
    < /p>
    < script type="text/javascript">
	var aviso_nueva_web = readCookie('aviso_politicas_web');
	if(! (!aviso_nueva_web || (aviso_nueva_web == '')) ) {
		controlcookies();
	}
    < /script>
29-marzo-2014
admin

XDK intel

Gracias a XDK intel podemos desarrollar aplicaciones en HTML 5 para luego generar aplicaciones para distintas plataformas:
Aplicaciones móviles: iOS, Android (nativo, Cordova, Crosswalk), Windows 8 Store, Windows Phone 8, Tizen, y Nook.
Aplicaciones web: Web, Chrome App, Fracebook App.

El XDK permite emular apps en dispositivos virtuales en distintos dispositivos (iPhone, Microsoft Surface, Google Nexus, …). Además, ofrece la capacidad de que los desarrolladores puedan almacenar su código en la nube de manera gratuita.

Video donde se puede ver la configuración de XDK y Demo de aplicativo


Making Native Mobile Apps with HTML5 Using the appMobi XDK


Write once and deploy to multiple platforms with HTML5 and Intel® XDK

12-enero-2014
admin

Usar HTML para formatear textos en Android

Cuando en Android quieres incluir un texto HTML en la aplicación aplicación se debe utilizar el paquete android.text.html.

Documentación Oficial

Ejemplo de uso:

//Asigna texto con formato HTML
txtTexto.setText(
     Html.fromHtml("prueba"), BufferType.SPANNABLE);

Funciona perfectamente con opciones de formato básicas, como son: negritas, cursivas, subrayado o colores de texto. Alguna como el tamaño del texto sí funciona correctamente con el método toHtml(), sin embargo con el método fromHtml() no. También, permite incluir imágenes.

En esta página hay una buena introducción de los objetos span de android. A través de los cuáles también se pueden formatear textos usando html.

7-enero-2014
admin

Añadir tipos de letra a las aplicaciones Android

Paso 1/ Poner en el directorio Assets/fuente la fuente deseada. En este caso BA-Wet_Paint.otf.
Nota: En esta página hay numerosos tipos de fuentes gratuitos.

Paso 2/ Creamos por ejemeplo un TextView tal que así:

< TextView  
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content" 
	android:id="@+id/texto" / >

Paso 3/ Por último podemos asignarle por código el tipo de letra:

TextView text = (TextView) mView.findViewById(R.id.texto);
Typeface font = Typeface.createFromAsset(context.getAssets(), 
                                           "fuente/BA-Wet_Paint.otf"); 
text.setTypeface(font);

//Si, además, se quiere poner en negrita
text.setTypeface(text.getTypeface(), Typeface.BOLD);

17-noviembre-2013
admin

Android Web Generator

Ahora puedes convertir una página web (Responsive web design) en una aplicación Android con solamente usar la URL de la página.

La aplicación resultante funcionará sin problemas como mínimo en todos los dispositivos android 2.2 o superior. Y tendrá la siguiente estructura:

Android Web Generator Diseño

Para ello tienes que bajarte estos dos proyectos preparados para el eclipse de mi repositorio de GitHub:

Proyecto AppWebGenerator
Este proyecto es el que contiene la aplicación android resultante. Se deben seguir los siguientes sencillos pasos:

  • Paso 1:
    •   – Renombrar el nombre del proyecto por el nombre que prefieras.
    •   – Renombrar el nombre del pakete es.com.disastercode.appwebgenerator
    •   – Renombrar el nombre del pakete es.com.disastercode.appwebgenerator.menu
    •  
    •  Nota: hacerlo en este orden y usar el refactor que proporciona el eclipse.
    •  
    •  
  • Paso 2:
    •   Ir a res/values/strings.xml y dar valor a las siguientes variables:
    •   URL_DIR -> será la dirección web de la página que se quiere usar como si fuera una aplicación.
    •   TITLE_APP -> título que quieres que aparezca en la barra superior.
    •   myAdUnitId -> si deseas ponerle publicidad de admob aquí va el código de anuncio que corresponda. Dejarlo en blanco si no deseas que salga publicidad.
  •  
  •  
  • Paso 3:
    •   Sustituir las imágenes ic_launcher.png de los directorios, por las del logo que tendrá tu aplicación:
    •   – res/drawable-hdpi
    •   – res/drawable-ldpi
    •   – res/drawable-mdpi
    •   – res/drawable-xhdpi
    •   – res/drawable-xxhdpi
    •  
    • Es recomendable sustituirlos por otros que tengan el mismo tamaño.
    •  
    •  

Proyecto library
Este proyecto contiene la version 4.2 del actionbarsherlock.
Más info en: http://actionbarsherlock.com/

Se usa esta barra para la parte superior de la aplicación. Si se desea cambiar el color se configura en el fichero res/drawable/background.xml

Ejemplo de uso:

Web EcoDom: http://disastercode.com.es/appecodom
Se trata de una web (responsive web design) para llevar un control de gastos. Está realizada con el Framework de PHP Codeigniter junto con la extension Grocery Crud.
Además, se ha utilizado para dibujar las gráficas con estadísticas la libreria JGraph.

Aplicación android resultante

3-noviembre-2013
admin

Patrones de Diseño que se pueden usar en Android

Adapter
Éste patrón se encarga de adaptar clases de interfaz incompatible para que trabajen de manera conjunta. Un ejemplo claro es cuando tenemos que hacer uso de alguna librería, pero surge la necesidad de adaptarse a ella. Nuestras opciones inmediatas son: o nosotros nos adaptamos a ella, o ella a nosotros. Lo mejor en éstos casos es crear un objeto que adapte tanto lo nuestro a lo de ella, como lo de ella a nosotros.
Ejemplo de Uso

Memento
Es un patrón de diseño, cuya finalidad es almacenar el estado de un objeto (o del sistema completo) en un momento dado de manera que se pueda restaurar en ese punto de manera sencilla. Para ello se mantiene almacenado el estado del objeto para un instante de tiempo en una clase independiente de aquella a la que pertenece el objeto (pero sin romper la encapsulación), de forma que ese recuerdo permita que el objeto sea modificado y pueda volver a su estado anterior.
Ejemplo de Uso

Chain of Responsability
Es un patrón de comportamiento que evita acoplar el emisor de una petición a su receptor dando a más de un objeto la posibilidad de responder a una petición. Para ello, se encadenan los receptores y pasa la petición a través de la cadena hasta que es procesada por algún objeto. Este patrón es utilizado a menudo en el contexto de las interfaces gráficas de usuario donde un objeto puede contener varios objetos. Según si el ambiente de ventanas genera eventos, los objetos los manejan o los pasan.
Ejemplo de Uso

MVC
En Android se puede utilizar el patrón de arquitectura llamado Modelo Vista Controlador (MVC) cuya principal bondad consiste en separar los datos de una aplicación, la interfaz de usuario y la lógica de negocios en tres componentes distintos que se relacionarán para al final tener como resultado nuestra aplicación.
Más info.

Renderer (Builder, delegate, Template Method)
Este patrón desacopla el proceso de pintado de elementos heterogéneos en una lista. El patrón renderer es una combinación de tres patrones.
Builder
Delegate
Template Method

Repository
Abstrae el origen de datos de un sistema con posibles fuentes de información.
Ver Aquí

Command
Este patrón permite solicitar una operación a un objeto sin conocer realmente el contenido de esta operación, ni el receptor real de la misma. Para ello se encapsula la petición como un objeto, con lo que además se facilita la parametrización de los métodos.
Ejemplo de Uso

25-agosto-2013
admin

Obtener el número de teléfono desde la aplicación

Se puede obtener el número de teléfono donde se está ejecutando la aplicación android. Para ello se puede hacer lo siguiente:

1 – Se deben añadir permisos al archivo manifest.xml:

< uses-permission 
       android:name="android.permission.READ_PHONE_STATE" / >

2 – Se utiliza la función getLine1Number():

private String getPhoneNumber(){
  TelephonyManager mTelephonyManager;
  mTelephonyManager = (TelephonyManager) 
                      getSystemService(Context.TELEPHONY_SERVICE); 
  return mTelephonyManager.getLine1Number();
}

Nota: El método getLine1Number() devuelve el número sólo si está configurado así en la SIM, en otro caso no nos sirve.
(Se puede comprobar en el propio móvil en Ajustes del sistema -> Acerca del teléfono -> Estado -> Mi número de teléfono)

Páginas:«123»

Categorias

Linkedin