Archivos Mensuales: abril 2010

Truco Android: menú compartir

Hoy en día para ser un 2.0 auténtico hace falta compartir todo ;-) por eso, he decidido añadir esta funcionalidad a alguna de mis aplicaciones Android.

La idea es que cuando el usuario pulse el botón compartir se abra un desplegable con las aplicaciones “sociales” (Twitter, Facebook, email, sms…) que tenga instaladas y a través de ellas suba el contenido (que irá precargado).

Había empezado a programar esa solución, pero buscando un poco me he encontrado con este post que dá una solución muy sencilla y efectiva.

Con la idea de reutilizar el código lo he convertido en una clase estática que puedo llamar directamente desde cualquiera de mis “Activity”

/**
 * Share a content using the user's installed apps
 *
 * Thanks to : http://labs.emich.be/2010/01/23/how-to-send-to-twitter-or-facebook-from-your-android-application/
 *
 * @author http://francho.org/lab/
 *
 */
public class Social {
	/**
	 * Open a contextual Menu with the available applications to share
	 *
	 * @param the Context (to open the menú and the new activity)
	 * @param the subject
	 * @param the text
	 */
	public static void share(Context ctx, String subject,String text) {
		 final Intent intent = new Intent(Intent.ACTION_SEND);

		 intent.setType("text/plain");
		 intent.putExtra(Intent.EXTRA_SUBJECT, subject);
		 intent.putExtra(Intent.EXTRA_TEXT, text);

		 ctx.startActivity(Intent.createChooser(intent, ctx.getString(R.string.tit_share)));
		}
}

Truco Android: Crear fondos basados en xml

En Android, además de usar imágenes como fondo de nuestros componentes, podemos usar backgrounds basados en definiciones xml.

Basta con colocar un fichero en res/drawable con el nombre que quieras y extenxión xml y definir dentro de el las características.

Luego en cualquier vista puedes definir el background haciendole referencia (Ej: @drawable/mi_fondo)

El siguiente ejemplo define un fondo con degradado y bordes redondeados

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"

>
	<gradient android:startColor="#3000" android:centerColor="#f000"
	android:endColor="#ff4e2d5c"
	android:centerY="0.9"
		android:angle="270" />
	 <corners android:radius="4dp" />
	 <padding android:left="7dp" android:top="7dp"
            android:right="7dp" android:bottom="7dp" />
     <margin android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp"/>
</shape>

Truco Android: Textos largos en TextView

A veces tenemos que colocar un texto demasiado largo en un TextView con lo que o no se ve completo o salta de linea con lo que rompe el diseño.

Una solución es activar el “marquee” para que se muestre solo lo que quepa y al recibir el foco haga automáticamente un scroll horizontal para mostrar el resto.

<TextView
  android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc lorem quam, laoreet scelerisque egestas ornare"
 android:id="@+id/Text11"
 android:layout_width="wrap_content" android:layout_height="fill_parent"

 android:ellipsize="marquee"
 android:focusable="true"
 android:focusableInTouchMode="true"
 android:lines="1"
/>

No hay que olvidarse de ponerlo como “focusable” (el movimiento empezará cuando reciba el foco) y forzar la linea simple.

Visto aquí

Concurso: gana un Nexus One gracias a el AndroidLibre.com

sorteo_android_libreEsta visto que el blog últimamente solo lo utilizo para participar en concursos, y es que se ha puesto de moda hacer sorteos en los que es necesario publicar una reseña para concursar.

Esta vez le ha tocado a los chicos de ElAndroidLibre.com, un blog sobre Android que sigo desde hace tiempo. El próximo 16 de mayo sortearán un flamante Nexus One y unas camisetas. Yo personalmente voy a por el Nexus, así que os dejo las camisetas a vosotros ;-P

Si te animas a participar aquí tienes las bases.

¡Suerte!

Seguir

Get every new post delivered to your Inbox.

Únete a otros 512 seguidores