IDIOMAS

Google-Translate-Chinese Google-Translate-Spanish to French Google-Translate-Spanish to German Google-Translate-Spanish to Japanese Google-Translate-Spanish to English Google-Translate-Spanish to Russian Google-Translate-Spanish to Portuguese Google-Translate-Spanish to Italian

miércoles, 8 de febrero de 2017

Nueva política de privacidad en android.permission.GET_ACCOUNTS en Android Studio

La nueva política de privacidad en GOOGLE ha provocado últimamente un bombardeo masivo de email a los desarrollandores y publicadores en GOOGLE PLAY  con el asunto Warning of Google Play Developer policy violation: Action Required  y con el mensage siguiente:

Tu APK solicita los siguientes permisos: android.permission.GET_ACCOUNTS. Las aplicaciones que utilizan estos permisos en un APK deben tener configurada una política de privacidad. los desarrolladores de aplicaciones en Google Play.

Para poder solventar el ploblema hay que actualizar, cambiar o suprimir la librería COM.GOOGLE.ANDROID.GMS:PLAY-SERVIES:8.1.0 o inferiores por el nuevo 10.0.1:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.0.0'    
    compile 'com.google.android.gms:play-services-ads:10.0.1'}

Debemos subir otra vez en el GOOGLE PLAY la app actualizada y los permisos también se actualizarán:



Espero sirva de ayuda las personas afectadas y que lo solucionen lo más rápidamente posible ya que sólo hay hasta el 15 de Marzo de 2017 o GOOGLE tomará medidas como poder eliminar nuestra app en el market. Saludos a tod@s!

jueves, 1 de septiembre de 2016

Como hacer loop infinito con audios .WAV en la clase AUDIOTRACK para Android Studio

Aquí os dejo el pedazo de codigo para poder hacer un loop infinito de nuestros audios .wav de nuestra aplicación. Saludos.


InputStream inputStream = getResources().openRawResource(R.raw.'tu_wav');
int buffersize =  500*1024;       
byte[] bytes = new byte[buffersize];       
int length_audio = 0;       
try {           
length_audio = inputStream.read(bytes, 0, buffersize);
       } catch (IOException e)
 {           e.printStackTrace();
       }
       
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
               44100, AudioFormat.CHANNEL_CONFIGURATION_MONO,
               AudioFormat.ENCODING_PCM_16BIT, buffersize, 
               AudioTrack.MODE_STATIC); 
      
audioTrack.write(bytes, 0,length_audio);       
audioTrack.setLoopPoints(44, bytes.length/2,-1);
       
audioTrack.play(); 



//500 es una referncia, en realidad ahi va el tamaño del wav en Kb
   
// 44 es muy importante para poder eliminar el "click" que se produce al hacer el loop

sábado, 23 de enero de 2016

Como crear un ALERTDIALOG en Android Studio. Ejemplo con ITEMS clickables.

Hola, en esta entrada de blog de Trucos nos fijaremos en un ejemplo práctico de creación de un ALERTDIALOG. Son pequeñas pantallas auxiliare que nos aparecen para informarnos en distinpos procesos de una aplicación como por ejemplo si estas de acuerdo en continuar adelante con una opción, grabar datos recurrentes, aceptar o no una política de cookies, etc...

Una cosa muy útil que tienen los ALERTDIALOG son su facilidad de programación y la posibilidad de añadirle eventos en sus ITEMS.

Vamos a ver el ejemplo para tenerlo más claro.


- creamos un BUTTON en nuestro LAYOUT para llamar el ALERTDIALOG:




- Vamos a programar un evento onclick en JAVA al nuevo BUTTON y que llame al método que lo hemos llamado mostrar_alertdialog() :


public class MainActivity extends AppCompatActivity {

  
    Button button;

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

        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override            
                public void onClick(View v) {

                mostrar_alertdialog();
            }
        });
    }




- Ahora vomos a programar el método:


 final CharSequence[] items = { "A", "B", "C", "D" };

    AlertDialog.Builder builder = new AlertDialog
                                  .Builder(MainActivity.this);
    builder.setTitle("VOCALES");
    builder.setItems(items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {

           
            dialog.dismiss();

        }
    }).show();
} //este método no tiene eventos en sus items




- Si lo que queremos es programar eventos en sus ITEMS, tenemos que utilizar un SWITCH y en cada CASE programar qué queremos hacer dentro del ONCLICK del ALERTDIALOG:


public void onClick(DialogInterface dialog, int item) {

    switch (item){

        case 0:
            // hacer algo
        case 1:
            // hacer algo
        case 2:
            // hacer algo
        case 3:
            // hacer algo            
}



Saludos a todo@s

miércoles, 14 de octubre de 2015

Como cargar las DEPENDENCIAS / LIBRERÍAS en Android Studio ( parte 2 )

Hay otro tipo de DEPENDENCIAS externas que podemos utilizar en nuestras aplicaciones, como la FFMPEG.

La manera de importarlas en Android Studio es la siguiente:

- Descargar la librería => arrastrar el archivo .JAR a la carpeta LIBS => Boton derecho sobre el .Jar  => Sincronizar


Paso a paso :







Se reconstruirá el proyecto y ya podremos trabajar con las librerías.




martes, 13 de octubre de 2015

Como cargar las DEPENDENCIAS / LIBRERÍAS en Android Studio ( parte 1 )

Para cargar las Dependencias Internas en Andoid Studio podemos hacerlo de dos maneras. La primera es ir a:

- PROJECT => boton derecho => OPEN MODULE SETTINGS => APP => DEPENDENCIES => " + " => selecionamos la Dependencia que nos interesa importar en nuestro projecto.


- Paso a paso;





















Nos pedirá dar al OK y automáticamente reconstruirá el proyecto








La otra manera, sería a través de GRADLE directamente:

- PROJECT => BUILD.GRADLE ( doble click ) => pestaña APP => DEPENDENCIES

Hay que recompilar y reconstruir el proyecto al modificar esta parte ( SYNC NOW )

- Paso a paso;




Dentro de DEPENDENCIES escribiremos : compile ' (librería a compilar) ' => sync




Saludos a tod@s , espero que sirva de ayuda y gracias por la visita :)


martes, 29 de septiembre de 2015

Como programar los WIDGETS de ZOOM en Android Studio: ZOOMCONTROLS y ZOOMBUTTON ( parte 1 )

Hola a tod@s, hoy quería hablar de los WIDGETS de ZOOM que nos proporciona ANDROID STUDIO y su correspondiente código JAVA.

En este primer ejemplo, veremos el ZOOMCONTROLS. Utilizaremos un IMAGEVIEW con la imagen que viene por defecto en ANDROID STUDIO. Podemos utilizar la que queramos. Sólo hay que insertar nuestro SRC.

- Arrastramos de la Palette el ZOOMCONTROLS sobre la ACTIVITY:





-Colocamos, a su gusto, el IMAGEVIEW y ZOOMCONTROLS:





- Este es el JAVA:

public class MainActivity extends AppCompatActivity {

    ImageView imageView;
    ZoomControls zoomControls;

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

        imageView=(ImageView)findViewById(R.id.imageView);

        zoomControls=(ZoomControls)findViewById(R.id.zoomControls);
        zoomControls.setOnZoomInClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {

                float x = imageView.getScaleX();
                float y = imageView.getScaleY();

                imageView.setScaleX(x + 1);
                imageView.setScaleY(y + 1);
            }
        });

        zoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {

                float x = imageView.getScaleX();
                float y = imageView.getScaleY();

                imageView.setScaleX(x - 1);
                imageView.setScaleY(y - 1);
            }
        });


    }




Podemos analizar el código de la siguiente manera:

- Al zooControls le pasamos el listener SETONZOOMINCLICKLISTENER y el  SETONZOOMOUTCLICKLISTENER, que serán los encargados de augmentar o disminuir la imagen.

- Le decimos que obtenga ( GETSCALE ) el imageView los parámetros X y Y en pantalla.

- Le decimos al imageView que reproduzca ( SETSCALE ) las nuevas proporciones: las recogidas anteriormente y + o - el FLOAT que nos interese. Este FLOAT se puede modificar.


Compila y haz tus modificaciones.



Saludos, espero que sirva de ayuda. Gracias por al visita!

martes, 11 de agosto de 2015

Como convertir una imagen DRAWABLE a BITMAP para Android Studio

Código básico para transformar un archivo PNG ubicada en nuestra DRAWABLE del proyecto, a BITMAP:



Drawable drawable = context.getResouses().getDrawable(R.id.imageview);

Bitmap bitmap = BitmapFactory.decodeFile(getResouse(),R.drawable.nuestra_imagen);

drawable.setImageBitmap(bitmap);