السبت، 31 مايو 2014

Efficient Android Threading: Asynchronous Processing Techniques for Android Applications

Efficient Android Threading: Asynchronous Processing Techniques for Android Applications

Multithreading is essential if you want to create an Android app with a great user experience, but how do you know which techniques can help solve your problem? This practical book describes many asynchronous mechanisms available in the Android SDK, and provides guidelines for selecting the ones most appropriate for the app you’re building.

Author Anders Goransson demonstrates the advantages and disadvantages of each technique, with sample code and detailed explanations for using it efficiently. The first part of the book describes the building blocks of asynchronous processing, and the second part covers Android libraries and constructs for developing fast, responsive, and well-structured apps.
  • Understand multithreading basics in Java and on the Android platform
  • Learn how threads communicate within and between processes
  • Use strategies to reduce the risk of memory leaks
  • Manage the lifecycle of a basic thread
  • Run tasks sequentially in the background with HandlerThread
  • Use Java’s Executor Framework to control or cancel threads
  • Handle background task execution with AsyncTask and IntentService
  • Access content providers with AsyncQueryHandler
  • Use loaders to update the UI with new data

الجمعة، 30 مايو 2014

Samsung Galaxy S5 Active disponible exclusivamente en tiendas AT&T y por Internet


A medida que se acerca el verano, necesitas un teléfono a prueba de todo. Diseñado para ser tan activo como tú, AT&T y Samsung Telecommunications America (Samsung Mobile) anunciaron el Samsung Galaxy S5 Active, el próximo paso del popular Galaxy S5 diseñado para aguantar el deterioro y caídas por el uso diario. 

A partir de hoy, el Galaxy S 5 Active está disponible por Internet y en tiendas AT&T sin pago inicial o sin contrato de servicio anual. El equipo también está disponible por $27.50 al mes con AT&T Next 18, $35.75 al mes con AT&T Next 12 o $199 con un contrato de servicio por 2 años.  Además, los clientes pueden ahorrar $50 en un Samsung Gear Fit cuando compran el Galaxy S5 Active.

El Galaxy S5 Active incorpora una cubierta resistente a los golpes, al agua y al polvo e incluye una variedad de funciones que lo hacen ideal para los que se mantienen activos:


  • Presiona el botón lateral del Galaxy S5 Active, conveniente para abrir todas tus aplicaciones relacionadas a las actividades al aire libre, en un solo lugar para un fácil acceso.
  • Monitorea tus latidos del corazón con el sensor del ritmo cardiaco integrado.
  • Lleva la cuenta de tus pasos, desafía a tus amigos y obtén consejos nutricionales a petición con S-Health.





El Galaxy S 5 Active tiene un procesador quad-core de 2.5 gigahertz y un sistema operativo Android 4.4 Kit Kat, permitiéndote cambiar de aplicaciones de forma rápida y sin interrupciones.. El modo para ahorrar más energía te permite responder llamadas importantes aunque solo te quede poca batería6. Este modo pone la pantalla en blanco y negro y apaga las aplicaciones que no sean fundamentales para que la batería de tu teléfono dure lo máximo posible.

El Galaxy S5 Active también ofrece una gran gama de funciones de entretenimiento. La pantalla AMOLED de alta definición de 5.1 pulgadas te permite grabar video en alta definición hasta 1080p, para que puedas ver ese divertido video de tus actividades al aire libre. La cámara trasera de 16 megapíxeles toma fotos nítidas y su zoom potente te permite tomar la foto perfecta en tu próxima aventura.

Mira nuestro video de Minuto Móvil para ver más de cerca al Galaxy S5 Active.


“El Samsung Galaxy S5 Active está diseñado para resistir el deterioro por el uso diario de aquellos que tiene un estilo de vida activo, pero manteniendo el nivel de rendimiento que los clientes esperan de un smartphone de alta calidad”, dijo Jeff Bradley, vicepresidente ejecutivo – Equipos, AT&T. “Ahora puedes disfrutar tus actividades al aire libre con un smartphone duradero en la red 4G LTE más confiable del país”.



Para más información sobre el Galaxy S5 Active, visita www.att.com/galaxys5active.


AT&T se prepara para mantener a sus clientes conectados durante la temporada de huracanes


AT&T está comprometido en ofrecer a sus clientes comunicaciones fiables durante la próxima temporada de huracanes - antes, durante y después de las tormentas - y tiene uno de los programas de respuesta a desastres más amplio y avanzado de la industria para mantener sus redes en funcionamiento.

A pesar de las predicciones, no siempre sabemos cuándo la próxima tormenta tropical o huracán llegará a nuestras costas. Con 600 millones de dólares invertidos en el programa de la Red de Recuperación de Desastres (NDR), el arsenal de equipos de AT&T incluye más de 320 camiones de equipo y tecnología a nivel nacional que se pueden movilizar de forma rápida, por lo que es uno de los programas de desastres más amplios y avanzados de la Estados Unidos.
“Permanecer conectado durante y luego de los eventos de mal tiempo es críticamente importante para los consumidores, las empresas y los funcionarios de manejo de emergencias", dijo el Vicepresidente Regional para Puerto Rico y las Islas Vírgenes Americanas, Ray Flores. "Es por eso que AT&T invierte una enorme cantidad de recursos en la seguridad de nuestra red y las capacidades de respuesta a desastres".

El equipo de NDR trabaja en estrecha colaboración con otros equipos de respuesta de AT&T, el personal local de la red de AT&T, Centros de Operaciones de Emergencia regionales y Centros de Respuesta de locales para fortalecer las instalaciones y equipos de red, y asignar técnicos y recursos cerca de la zona de impacto de la tormenta. En caso de daños, los equipos están preparados para restaurar y mantener el servicio hasta que las reparaciones permanentes se pueden hacer. El programa NDR de AT&T es el primer en ser certificado por el Departamento de Seguridad Nacional por preparación para desastres voluntaria de empresas privadas.


AT&T también lleva a cabo simulacros de preparación y simulaciones durante todo el año para asegurar que nuestras redes están preparadas y nuestro personal está capacitado para responder en cualquier momento. NDR completará su 74to ejercicio de recuperación de campo-completo este año. Desde su creación en 1991, el NDR ha respondido a más de 20 catástrofes a través de todos los Estados Unidos. Además, el Centro de Operaciones de la Red Global de AT&T supervisa nuestras redes 24/7.


Las preparaciones estándar de la red AT&T antes de una tormenta suelen incluir:


• La suma de capacidad a la red inalámbrica para dar cabida a un mayor volumen de llamadas.

• Inspección de las baterías de respaldo de alta capacidad ubicadas en instalaciones celulares.

• Preparación de generadores portátiles  y baterías de vida prolongada así como dar mantenimiento a los generadores fijos existentes.

• Abastecimiento de combustible a los generadores ubicados en facilidades celulares.



Equipos listos en caso de algún evento incluyen:


• Facilidades celulares móviles

• Equipos de comunicaciones de emergencia

• Recursos internos y externos para las actividades de evaluación y de recuperación inicial.




PREPARAR UN PLAN INDIVIDUAL O PARA NEGOCIOS


Se recomienda que los consumidores y las empresas también tengan un plan de comunicaciones en caso de emergencia. Al prepararse para una evacuación o para refugiarse en el lugar, recuerde estos siguientes consejos.



Consejos para el Consumidor:


Mantenga las baterías de los teléfonos inalámbricos con carga en todo momento. En caso de interrupción de energía, es importante tener medios alternos de cargar el teléfono como una batería adicional, cargador de auto o accesorio de carga portátil. Los periodos de ventas libres de impuestos son un buen momento para abastecerse de los accesorios del teléfono celular para su hogar.

Mantenga seco su teléfono móvil. La mayor amenaza de los celulares durante un huracán es el agua, por lo que es importante mantener su equipo a salvo de los elementos guardándolo en una bolsa plástica o en algún otro tipo de cubierta protectora, como una cubierta de teléfono Otterbox.

Tenga un plan de comunicación familiar. Designe a alguien fuera de la zona como contacto central y asegúrese de que todos los miembros de la familia sepan a quién contactar en caso de que se extravíen. Lo más importante es practicar su plan de emergencia con antelación.

Programe todos sus números de contacto de emergencia y direcciones de correo electrónico en su teléfono móvil. Los números deben incluir el departamento de policía, estación de bomberos y hospitales, así como los miembros de su familia.

Transfiera el número de su casa a su número de teléfono móvil en caso de una evacuación. Debido a que el desvío de llamadas funciona desde la oficina de telefonía central, usted puede recibir las llamadas entrantes desde su teléfono de línea fija, incluso si su servicio telefónico local se interrumpe en su casa. En el improbable caso de que la oficina central no está en funcionamiento, los servicios como correo de voz y desvío de llamadas pueden ser útil.

Vigile la trayectoria de la tormenta y esté atento a la información del tiempo desde su teléfono celular. Muchos hogares pierden energía durante el mal tiempo. Si usted tiene un teléfono móvil con servicio a Internet, podrá mantenerse informado del tiempo a través de páginas oficiales del radar local que alertan sobre condiciones climatológicas.

Los teléfonos con cámara proporcionan asistencia. Si usted tiene un teléfono con cámara, debe tomar, guardar y enviar fotos - incluso clips de vídeo - de propiedad dañada a su compañía de seguros desde teléfono.

Aproveche las ventajas de la tecnología GPS. Los servicios como AT&T Navigator y AT&T FamilyMap pueden ayudarle a buscar rutas de evacuación o evitar la congestión del tráfico de árboles caídos o cables de electricidad, así como el rastreo de dispositivo inalámbrico de un familiar en caso de que se separen.



Recomendaciones Para Pequeños Negocios:


Establecer un servicio de reenvío de llamadas a una ubicación predeterminada para casos de emergencia. Establezca un número tipo “hotline” para que los empleados, familiares de los empleados, clientes y socios, según corresponda, puedan llamar de manera que todas las partes sepan de la situación del negocio y plan de emergencia.


Asegure su información/datos en la nube. Copie con frecuencia los archivos de importancia para su negocio a una ubicación externa. Consulte su proveedor de telecomunicaciones para soluciones móviles disponibles.


Establezca planes detallados para la evacuación o para refugiarse. Practique estos planes (adiestramiento a los empleados, etc.) Planifique como podría establecer su negocio en una ubicación temporera si fuera necesario y asigne un lugar de encuentro para los empleados si el lugar de negocio no es accesible o seguro.


Forme un equipo de manejo de crisis y coordine esfuerzos con las empresas vecinas y la administración del edificio o local. Tenga en cuenta que los desastres que afectan a sus proveedores también afectan a su negocio. Delinear un plan para la continuidad de suministros para el negocio es esencial.



MANTENGA LAS LINEAS DISPONIBLES PARA EMERGENCIAS



Durante una evacuación, el evento de la tormenta y luego de esta, es probable que se sobrecarguen los recursos de la red. Para ayudar a asegurar que el personal de emergencia tenga líneas abiertas, mantenga estos consejos en mente:


Mensajes de texto. Durante una situación de emergencia, los mensajes de texto pueden salir más rápidamente que las llamadas de voz, ya que requieren menos recursos de red. Todos los teléfonos móviles de AT&T son capaces de mensajes de texto. Sepa cuál es su plan de mensajes y/o data, ya que dependiendo de su plan puede aplicar cargos adicionales por estos servicios.


Esté preparado para alto volumen de llamadas. Durante una emergencia, muchas personas están tratando de utilizar sus teléfonos al mismo tiempo. El aumento en volumen de llamadas puede crear congestión en la red, provocando la señal de " ocupado rápido " en su teléfono móvil o un tono de marcado lento en su teléfono de línea fija. Si esto sucede, cuelgue, espere unos segundos y vuelva a intentar de nuevo la llamada.


Mantenga las llamadas no urgentes a un mínimo. Limite las llamadas a las más importantes, si hay mal tiempo, mucha gente va a estar tratando de llamar a sus seres queridos, amigos y socios de negocios.


Diez razones por las que debes tener el Galaxy S5


El buque insignia de la Samsung ya es conocido por la mayoría de los entusiastas de la tecnología y en especialmente los amantes del Sistema Operativo Android, pero para esos que todavía estan analizando si dan el paso a adquirir el equipo aquí te dejamos 10 razones por las que debes tener el S5.

Para la creación del Galaxy S5 Samsung tuvo como norte el consumidor, buscando satisfacer las necesidades diarias de los millones de ususarios de smartphones.


Los usuarios necesitaban mayor rapidez de navegación, mejoras en el tiempo de la batería, cámaras más potentes y una seguridad superior.


Teniendo en cuenta esto,  te mencionamos 10 puntos o razones que debes tener en consideración al momento de evaluar el S5.


1.    Diseño: El Galaxy S5 cuenta con unas dimensiones de 142 x 72,5 x 8,1 mm, y una pantalla Super AMOLED Full HD de 5´1”, la cual es muy buena para ver videos y disfrutar del equipo y que a la vez sea comodo en la mano para el promedio de las personas.

El equipo viene en cuatro colores, blanco y negro, o azul y dorado eléctrico.

2.    Una interfaz mejorada: El TouchWiz de Samsung recibió una pequeña mejora en diseño, con colores mas claros, iconos y herramientas más visuales y fáciles de navegar. La pantalla ha sido diseñada para una visualización cómoda de los contenidos.


3.    El S5 tiene una cámara impresionante: El Galaxy S4 se caracterizó por brindar una excelente cámara y en el S5 Samsung decidió mejorar aún más este aspecto.  La cámara del Galaxy S5 es de 16 mpx, con un autofoco incorporado, capaz de enfocar en tan sólo 0.3 segundos, lo que la convierte en en una cámara súper rápida. Además, permite mantener el punto de enfoque solo en aquella parte de la imagen que te interesa, desenfocando el resto. Mientras,  el modo HDR, incorporado en el software de la cámara, te ayudará a mejorar la iluminación en tus fotos y videos

4.    Mejoras en la aplicación  S Health: S Health llega en su versión 3.0 con el nuevo Galaxy S5. Esta app te ofrece características que ayudan a mantenerse en forma y saludable. Además, te proporciona un seguimiento de tu rutina a través del Fitness Tracker, que te permite monitorear y administrar los pasos que das en tu día a día para alcanzar tu meta de salud. Con herramientas como el podómetro, dieta, registros de ejercicio y monitoreo de ritmo cardiaco se convertirá en tu mejor aliado para que consigas tus objetivos de salud.



5.    No te preocupes por el polvo y el agua: El Galaxy S5 cuenta con el certificado IP67, esto significa que es un smartphone resistente al agua y al polvo, por lo que ahora, tu GALAXY S5, estará a salvo ante  esos pequeños accidentes de la vida cotidiana.



6.   Otra mejora incluida en el S5 es la capacidad de desbloquear el equipo utilizando tu huella, esto es posible ya que el equipo incorpora un escáner dactilar.



7.    Navega a velocidades a tono con tus necesidades: Cada día que pasa el utilizar el internet es una tarea de suma importancia, sea para trabajo o recreación y el S5 nos ofrece una excelente rapidez, ya que es compatible con la quinta generación de Wi-Fi 802.11ac, 2x2 MIMO y un LTE estándar categoría 4.

Otra de las caracteristicas a destacar es la integración de la tecnología Download Booster, que permite el uso de LTE y Wi-Fi de manera simultánea para que la descarga sea aun más rápida!

8.    Los consumidores necesitan un equipo que no necesite estar conectado siempre a la corriente: Samsung implementó el Ultra Power Save Mode (UPSM): Una gestión de la batería inteligente, el cual con una gestion mas inteligente en el uso de la bateria se logra extender por 24 horas el 10% de batería.

Lo que se consigue con el UPSM es que se cierren las aplicaciones que son menos necesarias, pero también tendras la oportunidad de tener activadas las actividades/apps importantes, como llamadas o mensajes de texto.

Tambien la pantalla reducirá su brillo y consumirá muchos menos recursos al pasarse de color al blanco y negro.


Sobre este particular, Samsung describe más al detalle las bondades de la bateria del Galaxy S5 (ver al final de post)


9.    Protección para los más pequeños: En estos tiempos modernos no hay duda que los más pequeñitos tienen acceso a los smartphones, tabletas, etc, pensando en esto Samsung incorpora el "Kids Mode" que no es  otra cosa que un perfil extra que le brindará a los niños una interfaz ideal para ellos, la cual mostrará solo las aplicaciones que nosotros hayamos instalado para que jueguen. Además, Samsung ha incorporado una tienda de aplicaciones con juegos educativos y divertidos.


10.    Te ayuda en las emergencias: El S5 incorporó el Emergency Mode, el cual te ayuda en casos de que te sientas en peligro, enviando un mensaje de ayuda con dos fotos: una tomada con la cámara frontal y otra con la de atrás, una grabación de audio de 5 segundos, más tu localización GPS.





Como te habiamos mencionado antes Con el Ultra Power Saving Mode, Samsung ha respondido
a una de las principales demandas de sus consumidores


No hay duda que el ususario siempre esta buscando equipos que puedan dar la milla extra en cuanto a duración de batería nos referimos y en este caso el Galaxy S5 trajo el Ultra Power Saving, un modo de ahorro de batería que ha enamorado a fanáticos de la tecnología.

Lo que el UPSM hace es sencillo, en el momento en que a la batería del equipo le quede un 10% de carga se cierran las aplicaciones que no son tan importantes en ese momento y dejando operando las que si podemos considerar más importantes en esos momentos, como lo son las llamadas y mensajes de texto.






Como puedes ver el S5 tiene muchas bondades que lo hacen un excelente equipo, tú que opinas?




Dejanos saber


الخميس، 29 مايو 2014

Know the performance, timing and speed of animation

Follow the former post "Animation follow touch path". The example show how to draw animation follow user touch path. Always one step in each onDraw(), without concern the device dpi, screen size... In some case, for example small screen with high dpi, or large screen with low dpi, the touch path will have different length, so it have different visual animation speed.

This example show how to retrieve screen dpi by with DisplayMetrics. May be you have to adjust speed (step and stepAngle in the code)  at run-time accordingly, depends on your application.

We always have to concern the performance (processing time) of our code. This example also show the processing time in onDraw, time between call of onDraw, and Frame Per Second (it approximate 60 fps). Remember you have to make sure your code cannot run longer than 1/60 second.

run on Nexus One

run on HTC One X

run on Nexus 7 (1st generation)

AnimationView.java
package com.example.androidanimationalongpath;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class AnimationView extends View {

Paint paint, paintText;

Bitmap bm;
int bm_offsetX, bm_offsetY;

Path animPath;
PathMeasure pathMeasure;
float pathLength;

float step; //distance each step
float distance; //distance moved
float curX, curY;

float curAngle; //current angle
float targetAngle; //target angle
float stepAngle; //angle each step

float[] pos;
float[] tan;

Matrix matrix;

Path touchPath;

long lastTime;

public AnimationView(Context context) {
super(context);
initMyView();
}

public AnimationView(Context context, AttributeSet attrs) {
super(context, attrs);
initMyView();
}

public AnimationView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initMyView();
}

public void initMyView(){
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(1);
paint.setStyle(Paint.Style.STROKE);

paintText = new Paint();
paintText.setColor(Color.RED);
paintText.setStrokeWidth(1);
paintText.setStyle(Paint.Style.FILL);
paintText.setTextSize(26);

bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
bm_offsetX = bm.getWidth()/2;
bm_offsetY = bm.getHeight()/2;

animPath = new Path();

pos = new float[2];
tan = new float[2];

matrix = new Matrix();

touchPath = new Path();

lastTime = System.currentTimeMillis();

}

@Override
protected void onDraw(Canvas canvas) {
if(animPath.isEmpty()){
return;
}

long startNanos = System.nanoTime();
long startMillis = System.currentTimeMillis();

canvas.drawPath(animPath, paint);

matrix.reset();

if((targetAngle-curAngle)>stepAngle){
curAngle += stepAngle;
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);
matrix.postTranslate(curX, curY);
canvas.drawBitmap(bm, matrix, null);

invalidate();
}else if((curAngle-targetAngle)>stepAngle){
curAngle -= stepAngle;
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);
matrix.postTranslate(curX, curY);
canvas.drawBitmap(bm, matrix, null);

invalidate();
}else{
curAngle=targetAngle;
if(distance < pathLength){
pathMeasure.getPosTan(distance, pos, tan);

targetAngle = (float)(Math.atan2(tan[1], tan[0])*180.0/Math.PI);
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);

curX = pos[0]-bm_offsetX;
curY = pos[1]-bm_offsetY;
matrix.postTranslate(curX, curY);

canvas.drawBitmap(bm, matrix, null);

distance += step;

invalidate();
}else{
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);
matrix.postTranslate(curX, curY);
canvas.drawBitmap(bm, matrix, null);
}
}

long endNanos = System.nanoTime();
long betweenFrame = startMillis - lastTime;
int fps = (int) (1000/betweenFrame);

String strProcessingTime = "Processing Time (ns=0.000001ms) = " + (endNanos - startNanos);
String strBetweenFrame = "Between Frame (ms) = " + betweenFrame;
String strFPS = "Frame Per Second (approximate) = " + fps;

lastTime = startMillis;
canvas.drawText(strProcessingTime, 10, 30, paintText);
canvas.drawText(strBetweenFrame, 10, 60, paintText);
canvas.drawText(strFPS, 10, 90, paintText);
canvas.drawText(String.valueOf(pathLength), 10, 120, paintText);

}

@Override
public boolean onTouchEvent(MotionEvent event) {

int action = event.getAction();

switch(action){
case MotionEvent.ACTION_DOWN:
touchPath.reset();
touchPath.moveTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
touchPath.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_UP:
touchPath.lineTo(event.getX(), event.getY());
animPath = new Path(touchPath);

pathMeasure = new PathMeasure(animPath, false);
pathLength = pathMeasure.getLength();

step = 1;
distance = 0;
curX = 0;
curY = 0;

stepAngle = 1;
curAngle = 0;
targetAngle = 0;

invalidate();

break;

}

return true;
}

}

package com.example.androidanimationalongpath;

import android.support.v7.app.ActionBarActivity;
import android.util.DisplayMetrics;
import android.widget.TextView;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView textDispInfo = (TextView)findViewById(R.id.dispinfo);

//get display dpi
DisplayMetrics metrics = getResources().getDisplayMetrics();
textDispInfo.setText(
"xdpi = " + metrics.xdpi + "\n" +
"ydpi = " + metrics.ydpi);
}

}

/res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.androidanimationalongpath.MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

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

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<com.example.androidanimationalongpath.AnimationView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@android:color/darker_gray" />

</LinearLayout>

</LinearLayout>



download filesDownload the files.

APK is prepared for testing on your device.

Next:
Change speed of Animation follow touch path

More example of Drawing Path on canvas of custom View.


Themer Beta v.1.53


Themer es más que una app. Se va a transformar la pantalla de inicio a algo que es hermoso, funcional, y está diseñado para adaptarse a la forma de usar el teléfono. Sólo tienes que elegir uno de los muchos temas gratuitos desde el navegador dentro de la aplicación y pulse aplicar.  

Tenemos el deporte, la ciencia ficción, la naturaleza, el minimalismo, películas, música y juegos. Docenas de temas para elegir y más añaden a diario.  


Basado en la web Android tematización, MyColorScreen.com, Themer hace todo el trabajo duro por usted, la creación de fondos de escritorio, widgets, y los iconos con un click.

 

Características:


  • La aplicación es gratuita y los temas son gratis. 
  • Fácil de ir de nuevo a su antigua configuración pantalla de inicio (aunque dudamos que usted desea!).
  • Todos los temas son adaptables, o usted puede utilizarlos como está.
  • Nueva pestaña " Favoritos " en el cajón de la aplicación le permite acceder rápidamente a las aplicaciones más utilizadas. 
  • Themer tecnología Acciones aprende sus preferencias de aplicaciones. No importa si usted está usando Pandora o Spotify para la música, WeatherBug o AccuWeather para el clima, o TweetCaster o HootSuite para Twitter. Themer será hacer las cosas bien.


Instrucciones básicas:



  • Después de la instalación, debe introducir su código después de que Themer se aplicará un tema " bienvenida" al dispositivo que explica cómo encontrar temas . 
  • Una vez que haya aplicado el primer tema , mantenga pulsado la pantalla de inicio y seleccione "Buscar Temas " (o haga clic en el icono de Themer en el cajón de su aplicación ) para volver al menú Themer . 
  • Para hacer Themer tu pantalla de inicio predeterminada, vaya al menú Themer y seleccione "Set Home" Haga click en " Themer" y "Siempre".
  • Para volver a su antigua pantalla de inicio, vaya al menú Themer , seleccione "Configuración", "Themer" y "Restaurar Old pantalla de inicio".
  • Después de aplicar un tema, deslizar hacia abajo en cualquier lugar de la pantalla para ver la barra de notificación. Pase hacia arriba para ocultarlo.
  






Novedades


* 1,53 (05/23/2014)
-Correcciones de errores relacionados con la integración AirDroid, compartir y Zooper Widget





Descargalo desde el Play Store > Themer Beta





Descargalo aqui > Themer Beta v.1.53





POR FAVOR COLABORA! Estamos solicitando sus donaciones para continuar adquiriendo equipos, espero puedan entender que ninguna compañía nos apoya y es muy difícil hacerse de todos los equipos para los cual nos preguntan. Puedes hacer la donación en el siguiente enlace

الأربعاء، 28 مايو 2014

Asus PadFone X: Teléfono más tableta a partir del 6 de junio en AT&T


El PadFone X es un smartphone Android 4.4 (KitKat) de alta definición de 5 pulgadas que puede convertirse en un tablet en HD total de 9 pulgadas, que le permite a los usuarios seleccionar la manera en la que desean ver cierto contenido de acuerdo a la aplicación y la situación en la que se encuentran – bien sea que estén viendo un video en la mesa de la cocina o atendiendo llamadas mientras vas de salida.

La pantalla dinámica permite que las aplicaciones que tengas abiertas instantáneamente se ajusten a la pantalla más grande de la estación del PadFone de ASUS para una transición sin interrupciones. PadFone X tiene un su diseño liviano con bocinas duales, que incluyen la tecnología ASUS Sonic Master para un sonido cautivante.


PadFone X combina el smartphone y la estación PadFone de ASUS en un paquete delgado y liviano con transiciones continuas y sin interrupciones que te permite elegir entre dos tamaños de pantallas dependiendo de la tarea que estás realizando en ese momento. Para darle un vistazo al PadFone X, mira estos videos






Cámara de última generación

Una cámara PixelMaster de 13 megapíxeles te permite captar fotos increíbles que sobrepasan la calidad de las fotografias tomadas con una cámara digital. El modo de poca luz tiene sensibilidad mejorada para sacar fotos luego de que oscurezca. La cámara aumenta la sensibilidad, permitiendo sacar fotos nítidas y brillantes en áreas con poca luz y sin tener que usar el flash. También incorpora un modo ráfaga que te permite tomar hasta 35 fotos por segundo.



Tecnologías de alta generación


PadFone X marca lo más reciente en una serie de colaboraciones entre ASUS y AT&T. Las compañías  comenzaron a trabajar juntas en el 2012 con el lanzamiento de VivoTab RT y continuaron en el 2013 con el MeMO Pad FHD 10 LTE. Sus características adicionales incluyen:

  • Rendimiento general fluido –PadFone ofrece un rendimiento general fluido gracias a su procesador Qualcomm® Snapdragon™ 800 2.3GHz quad-core CPU.
  • Gran unidad de almacenamiento – 16GB de almacenamiento interno y Micro SD hasta 64GB de almacenamiento adicional para garantizar que tengas suficiente almacenamiento para guardar tu música, peliculas, juegos y fotos fravoritas.
  • Batería grande – La estación del PadFone incluye una batería grande. La estación carga la batería del smartphone cuando está insertado, ofreciendo así el doble de vida de la batería. Esto le permite  a los usuarios hacer más cosas y por un período más largo de tiempo. También incorpora Power Matters Alliance (PMA) para cargar el equipo de forma inalámbrica para una mayor conveniencia y menos enredos.



Accesorios para una máxima protección

Dos accesorios adicionales están disponibles para una experiencia móvil mejorada. El PadFone X Folio Bundle es un paquete de cubiertas para la estación PadFone de ASUS que está diseñado para trabajar conjuntamente aún cuando el teléfono está insertado en la estación. Las cubiertas están disponibles en azul y blanco y están hechas de material sintético poliuterano, protegiendo el PadFone X de abolladuras y también incorpora un interior microfibra para mantener la pantalla libre de rasguños.


El PadFone X Mobile Dock es un teclado Bluetooth personalizado que transforma el PadFone X en un notebook. Cuenta con teclas precisas y un cuerpo de aluminio para una mejor experiencia de teclado, y un touchpad integrado que permite que navegues documentos y sitios web sin tener que tocar la pantalla. El Mobile Dock se conecta al PadFone X por Bluetooth 3.0 e incluye una batería 450mAh con capacidad de hasta un mes de uso.



Promoción especial


Compra el paquete de cubiertas ASUS en azul o blanco y el Wireless Charging Folio y el Wireless Charging Mat de Duracell por $80 – un ahorro de $50. No requiere compra. La oferta es válida desde el 6 de junio hasta el 24 de Julio de 2014 o hasta agotar existencias.


Visita att.com/PadFoneX para más detalles sobre el PadFone X. Sigue la conversación en Twitter con #PadFone.


El ASUS PadFone X obtuvo cinco de cinco estrellas en el sistema de Calificación ecológica de AT&T. El sistema, el cual aborda los atributos medioambientales de los teléfonos marca AT&T, fue diseñado para empoderar a los clientes en sus decisiones en torno a la sostenibilidad. Para más información acerca de la calificación de este equipo, del sistema de Calificación ecológica de AT&T y de cómo puedes unirte al esfuerzo de AT&T por hacer una diferencia, visita http://att.com/ecospace.



Ordena el ASUS PadFone X exclusivamente de AT&T por Internet o en tiendas el 6 de junio sin pago inicial y sin contrato anual. El smartphone y la estación PadFone de ASUS estarán disponibles por $22.92 al mes con AT&T Next 18, $29.80 al mes con AT&T Next 12 o $199 con un contrato de servicio anual.

“Estamos orgullosos de añadir el innovador ASUS PadFone X al portafolio destacado de smartphones de AT&T”, dijo Jeff Bradley, vicepresidente ejecutivo de Equipos, AT&T. “El PadFone X brinda una tremenda flexibilidad a los consumidores. Combina un poderoso smartphone con una estación PadFone de 9 pulgadas y opera en la red que cubre a más de 99% de la población del país4”.



“AT&T y ASUS están comprometidos con ofrecer una increíble experiencia, y nos emociona poder ofrecer una combinación poderosa del PadFone X en la red LTE de AT&T. PadFone X ofrece la habilidad de experimentar instantáneamente entre dos tamaños de pantallas a través de un teléfono en un tablet”, dijo Jerry Shen, CEO, ASUS.


Fill Path with color

To fill path with color, simple replace the code paint.setStyle(Paint.Style.STROKE) to paint.setStyle(Paint.Style.FILL) or paint.setStyle(Paint.Style.FILL_AND_STROKE).


Modify MyShape.java in the example "Draw star on canvas" to fill the star.
package com.example.androiddrawpath;

import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;

public class MyShape {

private Paint paint;
private Path path;

public MyShape() {
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(3);
//paint.setStyle(Paint.Style.STROKE);
//paint.setStyle(Paint.Style.FILL);
paint.setStyle(Paint.Style.FILL_AND_STROKE);

path = new Path();
}

public void setCircle(float x, float y, float radius, Path.Direction dir){
path.reset();
path.addCircle(x, y, radius, dir);
}

public void setStar(float x, float y, float radius, float innerRadius, int numOfPt){

double section = 2.0 * Math.PI/numOfPt;

path.reset();
path.moveTo(
(float)(x + radius * Math.cos(0)),
(float)(y + radius * Math.sin(0)));
path.lineTo(
(float)(x + innerRadius * Math.cos(0 + section/2.0)),
(float)(y + innerRadius * Math.sin(0 + section/2.0)));

for(int i=1; i<numOfPt; i++){
path.lineTo(
(float)(x + radius * Math.cos(section * i)),
(float)(y + radius * Math.sin(section * i)));
path.lineTo(
(float)(x + innerRadius * Math.cos(section * i + section/2.0)),
(float)(y + innerRadius * Math.sin(section * i + section/2.0)));
}

path.close();

}

public Path getPath(){
return path;
}

public Paint getPaint(){
return paint;
}

}


More example of Drawing Path on canvas of custom View.

Round corner of path with CornerPathEffect

To make a path with rounded corner, simple call setPathEffect() with CornerPathEffect.

  float radius = 50.0f;
CornerPathEffect cornerPathEffect =
new CornerPathEffect(radius);
paint.setPathEffect(cornerPathEffect);


Modify MyShape.java in the example "Draw star on canvas" to draw the star with rounded corner.
package com.example.androiddrawpath;

import android.graphics.Color;
import android.graphics.CornerPathEffect;
import android.graphics.Paint;
import android.graphics.Path;

public class MyShape {

private Paint paint;
private Path path;

public MyShape() {
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(3);
paint.setStyle(Paint.Style.STROKE);

float radius = 50.0f;
CornerPathEffect cornerPathEffect =
new CornerPathEffect(radius);
paint.setPathEffect(cornerPathEffect);

path = new Path();
}

public void setCircle(float x, float y, float radius, Path.Direction dir){
path.reset();
path.addCircle(x, y, radius, dir);
}

public void setStar(float x, float y, float radius, float innerRadius, int numOfPt){

double section = 2.0 * Math.PI/numOfPt;

path.reset();
path.moveTo(
(float)(x + radius * Math.cos(0)),
(float)(y + radius * Math.sin(0)));
path.lineTo(
(float)(x + innerRadius * Math.cos(0 + section/2.0)),
(float)(y + innerRadius * Math.sin(0 + section/2.0)));

for(int i=1; i<numOfPt; i++){
path.lineTo(
(float)(x + radius * Math.cos(section * i)),
(float)(y + radius * Math.sin(section * i)));
path.lineTo(
(float)(x + innerRadius * Math.cos(section * i + section/2.0)),
(float)(y + innerRadius * Math.sin(section * i + section/2.0)));
}

path.close();

}

public Path getPath(){
return path;
}

public Paint getPaint(){
return paint;
}

}


More example of Drawing Path on canvas of custom View.

الثلاثاء، 27 مايو 2014

Animation follow touch path

This example show how to implement animation of moving bitmap follow the touch moving path.


AnimationView.java
package com.example.androidanimationalongpath;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class AnimationView extends View {

Paint paint;

Bitmap bm;
int bm_offsetX, bm_offsetY;

Path animPath;
PathMeasure pathMeasure;
float pathLength;

float step; //distance each step
float distance; //distance moved
float curX, curY;

float curAngle; //current angle
float targetAngle; //target angle
float stepAngle; //angle each step

float[] pos;
float[] tan;

Matrix matrix;

Path touchPath;

public AnimationView(Context context) {
super(context);
initMyView();
}

public AnimationView(Context context, AttributeSet attrs) {
super(context, attrs);
initMyView();
}

public AnimationView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initMyView();
}

public void initMyView(){
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(1);
paint.setStyle(Paint.Style.STROKE);

bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
bm_offsetX = bm.getWidth()/2;
bm_offsetY = bm.getHeight()/2;

animPath = new Path();

pos = new float[2];
tan = new float[2];

matrix = new Matrix();

touchPath = new Path();
}

@Override
protected void onDraw(Canvas canvas) {

if(animPath.isEmpty()){
return;
}

canvas.drawPath(animPath, paint);

matrix.reset();

if((targetAngle-curAngle)>stepAngle){
curAngle += stepAngle;
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);
matrix.postTranslate(curX, curY);
canvas.drawBitmap(bm, matrix, null);

invalidate();
}else if((curAngle-targetAngle)>stepAngle){
curAngle -= stepAngle;
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);
matrix.postTranslate(curX, curY);
canvas.drawBitmap(bm, matrix, null);

invalidate();
}else{
curAngle=targetAngle;
if(distance < pathLength){
pathMeasure.getPosTan(distance, pos, tan);

targetAngle = (float)(Math.atan2(tan[1], tan[0])*180.0/Math.PI);
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);

curX = pos[0]-bm_offsetX;
curY = pos[1]-bm_offsetY;
matrix.postTranslate(curX, curY);

canvas.drawBitmap(bm, matrix, null);

distance += step;

invalidate();
}else{
matrix.postRotate(curAngle, bm_offsetX, bm_offsetY);
matrix.postTranslate(curX, curY);
canvas.drawBitmap(bm, matrix, null);
}
}

}

@Override
public boolean onTouchEvent(MotionEvent event) {

int action = event.getAction();

switch(action){
case MotionEvent.ACTION_DOWN:
touchPath.reset();
touchPath.moveTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_MOVE:
touchPath.lineTo(event.getX(), event.getY());
break;
case MotionEvent.ACTION_UP:
touchPath.lineTo(event.getX(), event.getY());
animPath = new Path(touchPath);

pathMeasure = new PathMeasure(animPath, false);
pathLength = pathMeasure.getLength();

step = 1;
distance = 0;
curX = 0;
curY = 0;

stepAngle = 1;
curAngle = 0;
targetAngle = 0;

invalidate();

break;

}

return true;
}

}

/res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.androidanimationalongpath.MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<com.example.androidanimationalongpath.AnimationView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@android:color/darker_gray" />

<com.example.androidanimationalongpath.AnimationView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@android:color/darker_gray" />
</LinearLayout>

</LinearLayout>

No change on MainActivity.java, refer HERE.


download filesDownload the files.

More example of Drawing Path on canvas of custom View.


AT&T confirma que tendrá el LG G3


La proveedora AT&T confirmó en su pagina web que tendrá disponible el nuevo buque insignia del LG, el G3.

En una pequeño anuncio a los medios AT&T confirma lo que ya muchos se esperaban y es que ofrecerán el nuevo equipo de LG.



AT&T hoy confirma que ofrecerá el G3 LG este año. El LG G3 se unirá a la red más confiable 4G LTE de la nación. "Estamos muy contentos de añadir el G3 LG a nuestra cartera de dispositivos de este año", dijo Jeff Bradley, vicepresidente senior de Dispositivos de AT&T. "Con su nítida pantalla 5.5 pulgadas Quad HD y con su enfoque de la cámara auto focus, el G3 LG es un teléfono innovador para los consumidores que buscan las últimas tecnologías que se ejecutan en toda la red que cubre más del 99 por ciento de todo American."



Para más información visita att.com/g3

 

Descarga los fondos de pantalla, sonidos [Ringtones, Notifications & Alarms] y algunas aplicaciones del LG G3


Como ya la mayoría sabe LG presentó su nuevo equipo en el día de hoy, el LG G3. De más esta decir que el teléfono tiene unas excelente especificaciones. Si aun no lo conoces (que lo dudo mucho) puedes ver mas información sobre el aquí.

Como siempre estamos buscando la manera de personalizar nuestro Android, hoy les traemos los fondos de pantalla, sonidos y algunas aplicaciones para que pongas tu Android al dia!



Puede ser que la mayoria de las aplicaciones no funcionen o den FC'S, pero dejanos saber cuales te funcionaron 









DESCARGAS










Apps del LG G3


LG Easy Home G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing


LG Home G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Home3 Optimus Theme G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG weather services:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG weather widget
https://drive.google.com/file/d/0B3d...it?usp=sharing




Password: unrar: LGViet.com

LGAlarmClock G3
https://drive.google.com/file/d/0B3d...it?usp=sharing

LGBackup G3
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Browser G3:

https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Calendar G3
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Camera App G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Contact G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Easy Home G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Email G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG File manager G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Gallery G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Home G3:
http://lgviet.com/forum/threads/chia...g3-apps.19818/

LG Home3 Optimus Theme G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Video G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Music G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Message G3:

https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Keyguard G3:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG Easy settings:
https://drive.google.com/file/d/0B3d...it?usp=sharing

LG LockScreen Settings:
https://drive.google.com/file/d/0B3d...it?usp=sharing




Teclado LG G3 

LGEIME.apk
https://drive.google.com/file/d/0B3d...it?usp=sharing

LGEIME_DICT_XT9_bin.apk
https://drive.google.com/file/d/0B3d...it?usp=sharing

LGEIME_THEME_BLACK3.apk
https://drive.google.com/file/d/0B3d...it?usp=sharing




Fuente: xda | xda | xda | xda


xda



LG presenta oficialmente el G3


Ya uno de los smartphones más esperados de esta temporada fue presentado oficialmente. Desde el evento celebrado hoy en Londres, el fabricante surcoreano ha dado a conocer el LG G3, su nuevo buque insignia para este año.


Pese a las filtraciones, aquí tenemos sus características totalmente confirmadas por el fabricante.











Especificaciones del LG G3


  • Pantalla IPS 5.5 pulgadas QuadHD (2560×1440)
  • Procesador Qualcomm Snapdragon 801 QuadCore a 2.5GHz
  • 2GB RAM
  • 16GB almacenamiento interno + ranura para tarjetas microSD hasta 128GB
  • Cámara trasera 13MP con estabilizador OIS+ y láser Auto Focus / Frontal 2.1MP
  • Batería 3000mAh extraíble
  • WiFi, 3G, 4G LTE, GPS, Bluetooth 4.0, NFC, carga inalámbrica Qi
  • Android 4.4.2 KitKat + renovada capa Optimus UI
  • 146.3 x 74.6 x 8.9 mm.
  • 149 gramos
  • Colores: negro metalizado, blanco nacarado y oro






Para más detalles visita la fuente








Que te pareció el G3?



Disfruta de la presentación del LG G3 desde aquí [EN VIVO]


Ya estas ready para conocer todas las novedades del nuevo equipo de LG? Pues permanece muy atento porque hoy es el día. Como siempre te llevaremos toda la información acerca de este nuevo terminal.

También te dejamos el enlace para que puedas disfrutar del evento en vivo.







Cuentanos que esperas del LG G3????