الخميس، 30 يوليو 2015

Photo Editor Pro v.4.5 Full


"Photo Editor Pro" es una aplicación de procesamiento de imágenes de gran alcance y fácil de usar.

Características principales:

Magnífica y magnífica función de dibujo Incomparable con efectos de imágenes, edición de imágenes, pegatinas, gestión de fotos, compartir fotos, procesamiento Retrato es gratis para usted.



1) función de dibujo fresco
 

  • Pegatinas para aplicar en su obra maestra.
  • Panel de RGB. 
  • Opción de bandeja múltiple con diferente tamaño de la anchura. 
  • Borra etc


2) Intercambio de fotos.



  • Ahora se puede importar y exportar su imagen a través de esta aplicación.


3) Efectos de imagen


  • Marcos para cuadros.
  • Splash de color 
  • Efectos fotográficos 
  • Escena Imagen. 
  • El enfoque y la función de toma. 
  • Calor. 
  • Nitidez. 
  • Agregar texto a las imágenes. 
  • Stickers.


4) de edición de imágenes



  • Rotación de Imagen.
  • Cortar Imagen. 
  • Ajuste de tamaño de imagen. 
  • La pintura y graffiti, se puede ajustar libremente el tamaño del pincel y la dureza. 
  • Ajuste el color y el brillo de la imagen. 
  • Ajuste el brillo, contraste, temperatura de color, saturación.


5) Gestión de fotos



  • Fácil de la galería, la cámara de fotos de importación.
  • Editado imágenes guardadas en mi galería, lo que le permite editar y ver de nuevo. 
  • Ver la imagen es simple, usando su dedo para mover y hacer zoom imágenes (dos dedos de zoom).


6) Procesamiento Retrato



  • Acné.
  • Eliminar las manchas y blanquear los dientes.
  • Reducción de ojos rojos.             


Con una participación clave multiplataforma, puede compartir fácilmente sus fotos a microblogging Sina, WeChat, QQ, Google, Instagram, Twitter y Facebook, retener fácilmente buenos recuerdos de la vida, para que más gente a encontrar y que te aprecian.



Aplicación contiene las todas las funciones más utilizadas de procesamiento de imágenes y puede proporcionar casi todas las funciones de edición de fotos y efectos de la foto con una función de dibujo incomparable.

A través de esta aplicación de frío editor de imágenes, edición de imagen se ha convertido en un verdadero arte: sólo tiene que tocar con un dedo, puede hacer que los efectos fotográficos localizados!

Photo Editor Pro es un editor de imágenes sencillo y gratuito para Android. Este es un gran editor de imágenes funcionales múltiples!

Así que si usted es un personal profesional o un principiante, usted puede pasar este editor pic en menos de un minuto de tiempo, es fácil de hacer los efectos asombrosos.

La estructura "foto editor pro" es muy simple y claro: hasta un niño puede utilizarlo! Sin embargo, a pesar de su estructura simple, es para sus imágenes a proporcionar cierta calidad y una amplia gama de efectos de fotos.

Fotomontajes y diseño de la foto es una pasión, ahora hay que esperar, hacer su propio laboratorio fotográfico o foto estudio de arte de esta aplicación perfecta de la foto y ser un buen diseñador de la foto y el fabricante de la foto mediante el uso de efectos de la foto / marco de fotos y guardar todas las imágenes en su galería de fotos. Así que prepárate para ser pintor de fotos a través de este organizador de fotos.

Use su imaginación - para crear una obra maestra!

Para Tablet PC de diseño ha sido optimizado! Puede ser el espectáculo perfecto. 






Como estamos comprometidos a brindarle la calidad y características adicionales en cada actualización, amigos ahora ..
* Renovar la antigua interfaz de usuario.
* Pegatinas descargan más rápido de la nube.
* Está conectado con la nube de diversión sin límite.
* Utilice las fotografías como fondo de pantalla / editar / pintura / acción y hacer que el juego de rompecabezas.
* Nueva foto interesante cotidiana en la categoría de las nubes.
* Alrededor de 1.000 pegatinas y en continuo aumento.





Descargalo desde el Play Store > Photo Editor Pro





Descargalo aquí > Photo Editor Pro v.4.5 Full





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

الأربعاء، 29 يوليو 2015

Google Translate v.4.0.0.RC08.99220384

Rompe las barreras del idioma con el Traductor de Google:

  • Traduce a más de 70 idiomas.
  • Habla con naturalidad y deja que Google traduzca.
  • Habla, escribe a mano o con el teclado, o haz una foto de lo que quieres traducir.


  • Traduce sin conexión mientras viajas. No necesitarás conexión a Internet.
  • Guarda tus traducciones y recupéralas desde cualquier dispositivo.


(La entrada mediante la cámara y la traducción sin conexión están disponibles en Android 2.3 y versiones posteriores).


Se ofrecen traducciones entre los siguientes idiomas:

afrikáans, albanés, alemán, árabe, armenio, azerí, bengalí; bangla, bielorruso, bosnio, búlgaro, canarés, catalán, cebuano, checo, chino (simplificado), chino (tradicional), coreano, criollo haitiano, croata, danés, eslovaco, esloveno, español, esperanto, estonio, euskera, finlandés, francés, galés, gallego, georgiano, griego, gujarati, hebreo, hindi, Hmong, holandés, húngaro, indonesio, inglés, irlandés, islandés, italiano, japonés, javanés, jemer, lao, latín, letón, lituano, macedonio, malayo, maltés, maratí, noruego, persa, polaco, portugués, rumano, ruso, serbio, suajili, sueco, tagalo, tailandés, tamil, telugu, turco, ucraniano, urdu, vietnamita, yidis

















Descargalo desde el Play Store > Google Translate








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

InstaPlacePro v.3.3.4 - Realiza y edita fotos para compartir con tus amigos


Una aplicación basada en la ubicación para que todos sepan en donde y cuando tomaste esa maravillosa foto. Ubicación overlay le dará la oportunidad de compartir con los amigos lo que estás viendo en tiempo real!

Skins personalizados bellamente diseñado darán sus fotos CLEANER, aspecto más elegante .




La aplicación es tan inteligente que reconocerá su ubicación actual y que también le recomiendo con varios skins que se pueden elegir .


Usted puede añadir el texto que desea, más el nombre del lugar ( la costumbre o geolocalizado sacado de Foursquare o Facebook) donde se están comprando la foto.


Aun cuando usted no es persona de medios sociales InstaPlace es para usted - sólo tienes que guardar las imágenes de la cámara en marcha!

 

Te permite embellecer sus imágenes que agregarán más a sus recuerdos en la vida. Va a disfrutar de ella en los próximos años!Características:


  • 40 pieles para cada lugar imaginable u ocasión 
  • pieles especiales Guerra Mundial Z
  • compartir a: Instagram, Facebook, Twitter, Weibo, Flickr, Tumblr
  • Marca de tiempo personalizable 
  • trabaja con sus fotos antiguas! (siempre y cuando usted tiene la información del GPS se guardan en ellas)
  • ubicación sacó de Foursquare o Facebook

 


¿Por qué obtener la versión PRO ?

  • Pro tiene más pieles 
  • Pro se actualiza en primer lugar, 2 semanas antes ( o más)
  • Pro ha marca de agua a OFF
  • Pro tiene más opciones
  • Pro no tiene anuncios de banner
  • Pro nos ayuda a ofrecer nuevas versiones de Instaplace :) y usted es favorable

 
NOTA: Para los que no se puede cargar la foto: liberar la memoria RAM utilizando asesino de la tarea, hay muchos task killer gratuita en Google Play, a continuación, iniciar esta aplicación y voila es obras!


Si esto no funciona límite de tamaño de fotografía mientras la toma de fotografías a 3Mpixels . No tiene su InstaWeather o InstaPlace foto busques peor!




Novedades
- El modo fuera de línea - le permitirá hacer la imagen sin conexión a Internet
- Instaplace WIDGET - al instante mostrará fotos de sus vacaciones
- Nuevo conjunto: Artlines
- Nuevo Icono
- Correcciones de bug licencias piruleta
- Fijar, por falta de video en la nota 4
- Otros insectos fijo



Descargala desde el Play Store > InstaPlace





Descargalo aquí >  InstaPlace Pro v.3.3.4




Fuente titulo



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 يوليو 2015

Open more than one project in Android Studio

Open more than one project in Android Studio:
- With one project opened
- Select menu File -> Reopen Project -> select the project to open
- Select New Window to open project.




FREE eBook: AdMob No-Nonsense Guide to Growing Your Mobile App

This handbook will walk you through practical ways to increase your app’s user engagement to help you eventually transition to growth. You’ll learn how to:
  • Pick the right metric to represent user engagement
  • Look at data to audit your app and find areas to fix
  • Promote your app after you’ve reached a healthy level of user engagement
~ Download link

MegaBox HD v.1.0.0 [Sin Anuncios] - Disfruta de ver películas y series


Ahora con la modalidad de que los equipos cuentan con pantallas mas grande, resulta más factible ver películas, vídeos, juegos,  y series de televisión en nuestro equipo.

Con esto en mente llega MegaBox HD, dando la opción a cualquier usuario de dispositivos Android de ver películas y series a través de su smartphone o tablets de forma totalmente gratis y en cualquier lugar. También podrás ver películas con calidad HD.



Características de MegaBox HD

  • Fácil de usar 
  • Buscar, descargar, Favoritos
  • 720p, 1080p y Rápido Streaming
  • LocalCast usuario de Chromecast / DLNA
  • Actualización diaria

















Descargalo sin anuncios > MegaBox HD v.1.0.0 [Sin Anuncios]



 

Las características oficiales del One Plus 2


Ya fue revelado de manera oficial el nuevo equipo OnePlus 2. 


Aquí puedes ver sus características: 


  • Pantalla de 5.5 pulgadas IPS-NEO 1080p y contraste 1500:1
  • Procesador Snapdragon 810 v2.1 y GPU Adreno 430
  • 3/4GB de memoria RAM DDR4
  • 16/64GB de almacenamiento interno
  • Cámara trasera de 13MP f/2.0con OIS y enfoque láser (0.2 segundos, según OnePlus), y delantera de 5MP
  • USB Type C con cable USB (2.0) reversible en ambos extremos
  • 4G y doble ranura para tarjetas SIM
  • Batería de 3300mAh (sin carga rápida ni inalámbrica)
  • Sensor de huellas, “más rápido que el de un iPhone” y con almacenamiento para 5 huellas
  • Botón lateral deslizante on tres posiciones de sonido: todo, prioridad o ninguno
  • Cuatro carcasas traseras: Bamboo, Black Apricot, Rosewood, Kevlar y el clásico Sandstone Black (incluido)
  • No NFC
  • Oxygen OS como capa de personalización sobre Android 5.1 Lollipop
  • 151.8 x 74.9 x 9.85 mm, 175g


OnePlus-2-4
OnePlus-2-5
OnePlus-2-2




PRECIOS:






Fuente de la info


الأحد، 26 يوليو 2015

FREE eBook - An Introduction to Network Programming with Java, 3rd Edition

An Introduction to Network Programming with Java, 3rd Edition

Description: Since the second edition of this text, the use of the Internet and networks generally has continued to expand at a phenomenal rate. This has led to both an increase in demand for network software and to improvements in the technology used to run such networks, with the latter naturally leading to changes in the former. During this time, the Java libraries have been updated to keep up with the new developments in network technology, so that the Java programming language continues to be one of the mainstays of network software development.

~ Link


StaggeredGridLayoutManager on RecyclerView


android.support.v7.widget.StaggeredGridLayoutManager is a LayoutManager that lays out children in a staggered grid formation. It supports horizontal & vertical layout as well as an ability to layout children in reverse.

Example to create StaggeredGridLayoutManager:
        staggeredGridLayoutManagerVertical =
new StaggeredGridLayoutManager(
2, //The number of Columns in the grid
LinearLayoutManager.VERTICAL);
staggeredGridLayoutManagerHorizontal =
new StaggeredGridLayoutManager(
3, //The number of rows in the grid
LinearLayoutManager.HORIZONTAL);


Modify last example "Android example using RecyclerView with CardView":

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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical">

<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="wrap_content"
android:orientation="vertical">
<EditText
android:id="@+id/namefield"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/addbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Add"/>

<RadioGroup
android:id="@+id/optGroupLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/optLinearLayoutVertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LinearLayout Vertical"
android:checked="true" />
<RadioButton
android:id="@+id/optLinearLayoutHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LinearLayout Horizontal" />
<RadioButton
android:id="@+id/optGridLayoutVertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="GridLayout Vertical" />
<RadioButton
android:id="@+id/optGridLayoutHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="GridLayout Horizontal" />
<RadioButton
android:id="@+id/optStaggeredGridLayoutVertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="StaggeredGridLayout Vertical" />
<RadioButton
android:id="@+id/optStaggeredGridLayoutHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="StaggeredGridLayout Horizontal" />
</RadioGroup>
</LinearLayout>

<android.support.v7.widget.RecyclerView
android:id="@+id/myrecyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

</LinearLayout>


com.example.androidrecyclerview.MainActivity.java
package com.example.androidrecyclerview;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity implements RecyclerViewAdapter.OnItemClickListener{

private RecyclerView myRecyclerView;
private RecyclerViewAdapter myRecyclerViewAdapter;

EditText nameField;
Button btnAdd;

RadioGroup optGroupLayout;
RadioButton optLinearLayoutHorizontal;
RadioButton optLinearLayoutVertical;
RadioButton optGridLayoutHorizontal;
RadioButton optGridLayoutVertical;
RadioButton optStaggeredGridLayoutHorizontal;
RadioButton optStaggeredGridLayoutVertical;

private LinearLayoutManager linearLayoutManagerVertical;
private LinearLayoutManager linearLayoutManagerHorizontal;
private GridLayoutManager gridLayoutManagerVertical;
private GridLayoutManager gridLayoutManagerHorizontal;
private StaggeredGridLayoutManager staggeredGridLayoutManagerVertical;
private StaggeredGridLayoutManager staggeredGridLayoutManagerHorizontal;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myRecyclerView = (RecyclerView)findViewById(R.id.myrecyclerview);

linearLayoutManagerVertical =
new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
linearLayoutManagerHorizontal =
new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
gridLayoutManagerVertical =
new GridLayoutManager(this,
2, //The number of Columns in the grid
LinearLayoutManager.VERTICAL,
false);
gridLayoutManagerHorizontal =
new GridLayoutManager(this,
3, //The number of rows in the grid
LinearLayoutManager.HORIZONTAL,
false);

staggeredGridLayoutManagerVertical =
new StaggeredGridLayoutManager(
2, //The number of Columns in the grid
LinearLayoutManager.VERTICAL);
staggeredGridLayoutManagerHorizontal =
new StaggeredGridLayoutManager(
3, //The number of rows in the grid
LinearLayoutManager.HORIZONTAL);

//set SpanSizeLookup()
gridLayoutManagerVertical.setSpanSizeLookup(new MySpanSizeLookup(5, 1, 2));
gridLayoutManagerHorizontal.setSpanSizeLookup(new MySpanSizeLookup(4, 1, 3));

myRecyclerViewAdapter = new RecyclerViewAdapter(this);
myRecyclerViewAdapter.setOnItemClickListener(this);
myRecyclerView.setAdapter(myRecyclerViewAdapter);
myRecyclerView.setLayoutManager(linearLayoutManagerVertical);

//Add MyItemDecoration
myRecyclerView.addItemDecoration(new MyItemDecoration(this));

nameField = (EditText)findViewById(R.id.namefield);
btnAdd = (Button)findViewById(R.id.addbutton);
btnAdd.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
String newName = nameField.getText().toString();

if(!newName.equals("")){
if(myRecyclerViewAdapter.getItemCount()>1){
myRecyclerViewAdapter.add(1, newName);
}else{
myRecyclerViewAdapter.add(0, newName);
}
}
}
});

optGroupLayout = (RadioGroup)findViewById(R.id.optGroupLayout);
optLinearLayoutHorizontal = (RadioButton)findViewById(R.id.optLinearLayoutHorizontal);
optLinearLayoutVertical = (RadioButton)findViewById(R.id.optLinearLayoutVertical);
optGridLayoutHorizontal = (RadioButton)findViewById(R.id.optGridLayoutHorizontal);
optGridLayoutVertical = (RadioButton)findViewById(R.id.optGridLayoutVertical);
optStaggeredGridLayoutHorizontal = (RadioButton)findViewById(R.id.optStaggeredGridLayoutHorizontal);
optStaggeredGridLayoutVertical = (RadioButton)findViewById(R.id.optStaggeredGridLayoutVertical);
optGroupLayout.setOnCheckedChangeListener(optLayoutCheckedChangeListener);

//pre-load dummy items
myRecyclerViewAdapter.add(0, "SpanSizeLookup");
myRecyclerViewAdapter.add(0, "ItemDecoration");
myRecyclerViewAdapter.add(0, "GridLayoutManager");
myRecyclerViewAdapter.add(0, "LinearLayoutManager");
myRecyclerViewAdapter.add(0, "RecyclerViewAdapter");
myRecyclerViewAdapter.add(0, "RecyclerView example");
myRecyclerViewAdapter.add(0, "RecyclerView");
myRecyclerViewAdapter.add(0, "android-er.blogspot.com");
myRecyclerViewAdapter.add(0, "android-er");
myRecyclerViewAdapter.add(0, "android");

}

private RadioGroup.OnCheckedChangeListener optLayoutCheckedChangeListener =
new RadioGroup.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(optLinearLayoutVertical.isChecked()){
myRecyclerView.setLayoutManager(linearLayoutManagerVertical);
}else if(optLinearLayoutHorizontal.isChecked()){
myRecyclerView.setLayoutManager(linearLayoutManagerHorizontal);
}else if(optGridLayoutHorizontal.isChecked()){
myRecyclerView.setLayoutManager(gridLayoutManagerHorizontal);
}else if(optGridLayoutVertical.isChecked()){
myRecyclerView.setLayoutManager(gridLayoutManagerVertical);
}else if(optStaggeredGridLayoutHorizontal.isChecked()){
myRecyclerView.setLayoutManager(staggeredGridLayoutManagerHorizontal);
}else if(optStaggeredGridLayoutVertical.isChecked()){
myRecyclerView.setLayoutManager(staggeredGridLayoutManagerVertical);
}
}
};


@Override
public void onItemClick(RecyclerViewAdapter.ItemHolder item, int position) {
Toast.makeText(this,
"Remove " + position + " : " + item.getItemName(),
Toast.LENGTH_SHORT).show();
myRecyclerViewAdapter.remove(position);
}
}



download filesDownload the files (Android Studio Format).


- More step-by-step examples of RecyclerView.

السبت، 25 يوليو 2015

100 Questions and Answers to help you land your Dream Android Job: or to hire the right candidate!

100 Questions and Answers to help you land your Dream Android Job: or to hire the right candidate!

There is a boom in the mobile applications market. It has been projected than 2015 more than a billion (with b) smartphones will be sold, twice as many as the number of personal computers . Mobile channels are increasing their revenues figures, with percentages over 100% being the norm and not the exception. Each business needs a mobile application, and therefore the demand of engineers, UX designers and QA testers is under huge demand. There is far more demand for jobs than offer, and the situation is even more optimistic for senior developers. "100 Questions and Answers to make you get your Android Dream Job" collects 100 questions and answers, divided in three levels, that the author has been summarising during several years both as an interviewer and as a candidate. If you are looking for a position as an Android developer, no matter how experience you are, or if you are looking to hire new members for your organisation, this book will provide you all the material you need to take the right decision and hire the right candidate!

Maxthon Navegador Web v.4.5.0.2000


En Maxthon sabemos cómo hacer que tu teléfono navegue a toda máquina. Puedes estar seguro, nos avalan más de 550 millones de descargas de la versión para Windows. Además, Maxthon Móvil está repleto de funciones interesantes como:



  • Sincronización con la nube–tus favoritos van contigo del escritorio a tu teléfono y al revés, siempre disponibles y actualizados
  • Temas/Skins–Dispones de una creciente colección de temas para vestir tu navegador como más te guste.
  • Cambio de presentación móvil/escritorio–alterna de forma muy simple el formato de presentación de las páginas web en tu móvil: ver en formato para Smartphone o con el diseño original para PC.
  • Widget lector de RSS –localiza, gestiona y lee tus contenidos favoritos de forma rápida y sencilla.
  • Panel de acceso rápido a tus sitios Web favoritos.
  • Gestor de descargas–Con él resulta muy sencillo ordenar, programar y guardar tus descargas, donde quieras y cuando quieras.
  • Super Gestos– Controla la navegación con sencillos movimientos de tu dedo por la pantalla.
  • Navegación con pestañas–Potente gestión de pestañas que te permite aprovechar al máximo el tamaño de tu pantalla.
  • Increíble velocidad–Carga las páginas sin esperas.
  • Potente personalización – con avatares y muchas opciones más.


NUEVO:
Carpetas de acceso rápido
Palabras clave de búsqueda calientes en la barra de direcciones varían en función de su ubicación
CORRECCIÓN DE ERRORES:
el pago de Juegos
Distorsión de la página al utilizar la función de Adblock Plus



Descargalo desde el Play Store > Maxthon Navegador Web





Descargalo aquí > Maxthon Navegador Web v.4.5.0.2000




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

Battery HD Pro v.1.62


Este es el monitor de batería perfecto para su teléfono o tableta. Es simple, hermoso y puede calibrarse especialmente para su dispositivo. - Widgets - Fondos animados - Datos en la zona de notificaciones - Tablas: carga, temperatura, voltaje


  • Escuchar música
  • Ver vídeo
  • Hablar con el teléfono
  • Navegar Internet ( WiFi / Edge / 3G / 4G )
  • En espera - Tiempo que falta para tener que recargar
  • Tiempo de uso de la lámpara LED
  • Juegos 2D y 3D
  • Leer libros
  • Navegación GPS
  • Video chat
  • Tomar fotos
  • Grabar vídeos






Novedades
Versión 1.62
- Gráfico: fijo brecha delante de la línea actual momento
- Estimación uso actual tiene indicación de cargada / descargada
- Notificaciones. La mejora de los selectores (unidad lista de Agregar Widget se utiliza aquí)
- Notificaciones. Ahora puede agregar hasta 4 productos aquí





Descargalo desde el Play Store > Battery HD Pro





Descargalo aquí > Battery HD Pro v.1.62



Android read file "/proc/mounts"

Android example code to read "/proc/mounts", easy to be modified to read other text files.


com.example.android_proc_mounts.MainActivity.java
package com.example.android_proc_mounts;

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

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class MainActivity extends ActionBarActivity {

TextView info;
String targetPath = "/proc/mounts";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
info = (TextView)findViewById(R.id.info);
info.setText(ReadFile(targetPath));
}

private String ReadFile(String path){
String result = "";

File file = new File(path);
if(file.exists()){
result += path + ":\n"
+ "======\n";
Scanner scanner = null;
try {
scanner = new Scanner(file);
while (scanner.hasNext()) {
String line = scanner.nextLine();
result += line + "\n"
+ "------\n";
}
} catch (FileNotFoundException e) {
e.printStackTrace();
result += e.toString();
}

}else{
return (path + " NOT exists");
}

return result;
}
}


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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".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" />

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/info"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</ScrollView>

</LinearLayout>


الجمعة، 24 يوليو 2015

Android example using RecyclerView with CardView

The former post show "Android CardView example", It can be embedded in RecyclerView.



Modify from last exercise of RecyclerView, "onDraw() and onDrawOver() of ItemDecoration for RecyclerView".

Create layout of the CardView, layout/layout_cardview.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
card_view:cardCornerRadius="20sp"
card_view:cardElevation="5sp">

<TextView
android:id="@+id/card_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="40dp"/>

</android.support.v7.widget.CardView>

Modify constructor of ItemHolder() in com.example.androidrecyclerview.RecyclerViewAdapter.java, ItemHolder(CardView cView, RecyclerViewAdapter parent), to include CardView. And also modify the method onCreateViewHolder(ViewGroup parent, int viewType).

com.example.androidrecyclerview.RecyclerViewAdapter.java
package com.example.androidrecyclerview;

import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ItemHolder> {

private List<String> itemsName;
private OnItemClickListener onItemClickListener;
private LayoutInflater layoutInflater;

public RecyclerViewAdapter(Context context){
layoutInflater = LayoutInflater.from(context);
itemsName = new ArrayList<String>();
}

@Override
public RecyclerViewAdapter.ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//View itemView = layoutInflater.inflate(R.layout.layout_item, parent, false);
//return new ItemHolder(itemView, this);
CardView itemCardView = (CardView)layoutInflater.inflate(R.layout.layout_cardview, parent, false);
return new ItemHolder(itemCardView, this);
}

@Override
public void onBindViewHolder(RecyclerViewAdapter.ItemHolder holder, int position) {
holder.setItemName(itemsName.get(position));
}

@Override
public int getItemCount() {
return itemsName.size();
}

public void setOnItemClickListener(OnItemClickListener listener){
onItemClickListener = listener;
}

public OnItemClickListener getOnItemClickListener(){
return onItemClickListener;
}

public interface OnItemClickListener{
public void onItemClick(ItemHolder item, int position);
}

public void add(int location, String iName){
itemsName.add(location, iName);
notifyItemInserted(location);
}

public void remove(int location){
if(location >= itemsName.size())
return;

itemsName.remove(location);
notifyItemRemoved(location);
}

public static class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

private RecyclerViewAdapter parent;
TextView textItemName;

private CardView cardView;

/*
public ItemHolder(View itemView, RecyclerViewAdapter parent) {
super(itemView);
itemView.setOnClickListener(this);
this.parent = parent;
textItemName = (TextView) itemView.findViewById(R.id.item_name);
}
*/

public ItemHolder(CardView cView, RecyclerViewAdapter parent) {
super(cView);
cardView = cView;
cardView.setOnClickListener(this);
this.parent = parent;
textItemName = (TextView) cardView.findViewById(R.id.card_item_name);
}

public void setItemName(CharSequence name){
textItemName.setText(name);
}

public CharSequence getItemName(){
return textItemName.getText();
}

@Override
public void onClick(View v) {
final OnItemClickListener listener = parent.getOnItemClickListener();
if(listener != null){
listener.onItemClick(this, getPosition());
}
}
}
}


download filesDownload the files (Android Studio Format).

Next:
- StaggeredGridLayoutManager (Google+ App-like) on RecyclerView


- More step-by-step examples of RecyclerView.

الخميس، 23 يوليو 2015

getExternalFilesDirs() and getExternalCacheDirs()

Start from Android 4.4 (API Level 19), methods getExternalFilesDirs(String type) and getExternalCacheDirs() were introduced.

File[] getExternalFilesDirs (String type) -
Returns absolute paths to application-specific directories on all external storage devices where the application can place persistent files it owns. These files are internal to the application, and not typically visible to the user as media.

File[] getExternalCacheDirs () -
Returns absolute paths to application-specific directories on all external storage devices where the application can place cache files it owns. These files are internal to the application, and not typically visible to the user as media.

Example code run on RedMi 2 (Android 4.4.4), WITH external SD Card:
both /storage/emulated/0/...(internal memory) and /storage/sdcard1/...(SD Card) are listed.


Run on Nexus 7 (Android 5.1.1) WITHOUT external SD Card:


Example code:
com.example.androidexternalstorage.MainActivity.java
package com.example.androidexternalstorage;

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

import java.io.File;

public class MainActivity extends ActionBarActivity {

TextView info;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
info = (TextView)findViewById(R.id.info);

File extFilesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);

String strInfo =
"Environment.getRootDirectory(): \n"
+ Environment.getRootDirectory() + "\n"
+ "Environment.getExternalStorageDirectory(): \n"
+ Environment.getExternalStorageDirectory() + "\n";

strInfo +=
"\ngetExternalFilesDir(null): \n"
+ getExternalFilesDir(null) + "\n"
+ "getExternalFilesDir(Environment.DIRECTORY_PICTURES): \n"
+ getExternalFilesDir(Environment.DIRECTORY_PICTURES) + "\n"
+ "getExternalFilesDir(Environment.DIRECTORY_MUSIC): \n"
+ getExternalFilesDir(Environment.DIRECTORY_MUSIC) + "\n";


//API Level 19
File[] externalFilesDirs = getExternalFilesDirs(null);
strInfo += "\ngetExternalFilesDirs(null):\n";
for(File f : externalFilesDirs){
strInfo += f.getAbsolutePath() + "\n";
}

//API Level 19
File[] externalCacheDirs = getExternalCacheDirs();
strInfo += "\ngetExternalCacheDirs():\n";
for(File f : externalCacheDirs){
strInfo += f.getAbsolutePath() + "\n";
}

/*
//API Level 21
File[] externalMediaDirs = getExternalMediaDirs();
strInfo += "\ngetExternalMediaDirs():\n";
for(File f : externalMediaDirs){
strInfo += f.getAbsolutePath() + "\n";
}
*/

info.setText(strInfo);
}

}


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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".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" />

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/info"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</ScrollView>


</LinearLayout>