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

lunes, 29 de junio de 2015

Como cambiar el nombre de PAQUETE de una aplicación Android APK en Android Studio

Es hora de subir nuestra aplicación a Google Play y no sirve el nombre de paquete .EXAMPLE que viene por defecto cuando creamos el proyecto.
Antes de comenzar un proyecto en Android Studio, o cualquier otro programa de realización de aplicaciones Android, es muy importante poner un nombre al paquete distinto al que viene por defecto. Sinó, no será validada al subirla a Google Play:




Sinó hemos tenido en cuenta este primer paso y ya tenemos el proyecto terminado, podemos cambiarlo manualmente. Los pasos son:

-Botón derecho sobre el nombre de nuestra APP => OPEN MODULE SETTING => APP => FLAVOR => modificar APLICATION IP:








- Si lo que queréis es cambiar el nombre del paquete a toda la aplicación ( sub-carpetas ) sólo hay que seleccionar PACKET FILES en el menú raíz y: BOTÓN DERECHO sobre SRC --> REFRACTOR --> RENAME y os pedirá si lo que queréis es solo una carpeta o todas las seleccionadas --> TODAS. También hay que cambiarlo en el MANIFEST.


- Al dar OK, el proyecto se recontruirà automàticamente y listos :^]  




SALUDOS!!!

viernes, 26 de junio de 2015

Ejemplo para configurar y personalizar el estado de un botón ( button ) con imagenes PNG con código JAVA para Android Studio.

Si queremos que nuestro botón cambie de estado mediante imagenes en la interface, aquí os dejo en ejemplo para que lo compiléis en Android Studio.

-Tenéis que descargar las imágenes y colocarlas en la carpeta DRAWABLE con los nombres "click" y "click_previo"

https://cdn1.iconfinder.com/data/icons/business-cursor/512/click-512.png ( click_previo )

https://cdn2.iconfinder.com/data/icons/gestures-2/32/one-finger-double-tap-512.png ( click )


-Después, crear un archivo:



- Copia el siguiente código y pégalo en la nueva pestaña creada:

<item    android:state_enabled="false"    android:drawable="@drawable/click_previo" />
<item    android:state_pressed="true"    android:drawable="@drawable/click" />





-Crea un boton de 250dp x 250dp en tu LAYOUT:






- Y asignale el nuevo arcivo XML como BACKGROUND. Compila y acciona el botón.




Puedes compilar sin codigo JAVA y veras cómo cambia el estado del botón al accionarlo 



-Si lo que queremos es hacer en JAVA, aquí va el código dentro el ONCREATE:

btn=(Button)findViewById(R.id.id_boto);
btn.setBackgroundResource(R.drawable.click_previo);
btn.setOnTouchListener(new View.OnTouchListener() {
    @Override    public boolean onTouch(View v, MotionEvent event) {

        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            btn.setBackgroundResource(R.drawable.click);
        }
        if (event.getAction() ==MotionEvent.AXIS_PRESSURE){
            btn.setBackgroundResource(R.drawable.click);
        }
        else {
            btn.setBackgroundResource(R.drawable.click_previo);
        }
        return false;
    }
});

Saludos!!!!

martes, 23 de junio de 2015

Sonidos y audios en Android Studio: clase MEDIAPLAYER

Esta clase se utiliza para la reproducción de audio y vídeo en Java. Entre sus pros, destaca la posibilidad de reproducir archivos de gran tamaño y en numerosos formatos. En contra, que consume muchos recursos del dispositivo y es recomendable lanzarla desde un nuevo THEARD o un RUNNABLE dentro de su ACTIVITY. Más información en Android Devolupers.


Este es el código básico para activar la clase desde un botón con su evento OnClick llamado Play:


Mediaplayer mediaplayer;
...

//dentro de onCreate
//el evento Onclick se programa en el XML del botón
public void Play ( View view ) {

mediaplayer = Mediaplayer.create(this, R.raw."nombre_archivo_audio");
mediaplayer.star();

}

-Si lo queremos es paralo, este es el código para un botón de stop con su evento llamado Stop:

public void Stop ( View view ) {

mediaplayer.stop();
mediaplayer.release();

}


Salu2!!


Como escoger qué ACTIVITY lanzar como primera pantalla de inicio de nuestra aplicación Android en Android Studio

Si queremos cambiar la ACTIVITY que se lanza como primera pantalla, donde es ACTIVITY_MAIN la que viene por defecto, sólo hay que:

- Buscar en nuestro ANDROID_MANIFEST:





- Y buscamos el INTENT-FILTER que es el filtro de intento para abrir el LAUNCHE ACTIVITY, o sea, lo que nos lanzará a la primera actividad cuando arrancamos la aplicación de cero:





-Moveremos este pequeño código hacia la ACTIVITY que queramos arrancar de inicio. Para este ejemplo en MAIN_ACTIVITY_2:



y listo!
compila y prueba :)

Saludos a tod@s!


domingo, 21 de junio de 2015

Como programar una SEEKBAR para controlar el volumen general desde nuetra aplicación Android en Android Studio.

Hola, hoy os mostraré cómo podemos controlar el flujo de STREAM de audio a través de una SEEKBAR sin utilizar los botones físicos del dispositivo.
Este ejemplo práctico estará compuesto por un archivo de audio de prueva, dos botones de PLAY y STOP y una SEEKBAR.
Para el XLM, os dejo el código más abajo. Si lo queréis hacer directamente vosotros :


- Crear la carpeta RAW ( http://trucosandroidstudio.blogspot.com.es/2015/03/como-crear-las-carpetas-raw-y-assets.html ), y arrastramos el audio de ejemplo:





- Creamos los botones PLAY y STOP, además de la SEEKBAR:



- XLM :


<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="PLAY"
        android:id="@+id/id_play"
        android:layout_above="@+id/id_volumen"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="42dp"
        android:onClick="Play" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="STOP"
        android:id="@+id/id_stop"
        android:layout_marginTop="38dp"
        android:layout_below="@+id/id_volumen"
        android:layout_alignLeft="@+id/id_play"
        android:layout_alignStart="@+id/id_play"
        android:onClick="Stop" />

    <SeekBar
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/id_volumen"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:indeterminate="false" />


- Ahora el código JAVA:


Button btn_play;
Button btn_stop;
SeekBar sk_volumen;
AudioManager audioManager;
MediaPlayer mediaPlayer;

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

    btn_play=(Button)findViewById(R.id.id_play);                 
    btn_play.setOnClickListener(new View.OnClickListener() {
        @Override        public void onClick(View v) {
            mediaPlayer=MediaPlayer.create(getApplication(),R.raw.audio_ejemplo);
            mediaPlayer.start();
            btn_play.setEnabled(false);
        }
    });

    btn_stop=(Button)findViewById(R.id.id_stop);
    btn_stop.setOnClickListener(new View.OnClickListener() {
        @Override        public void onClick(View v) {
            mediaPlayer.stop();
            mediaPlayer.release();
            btn_play.setEnabled(true);
        }
    });

    Volumen();
}

private void Volumen() {

    try {
        sk_volumen = (SeekBar)findViewById(R.id.id_volumen);
        audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        sk_volumen.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
        sk_volumen.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));

        sk_volumen.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override            public void onStopTrackingTouch(SeekBar arg0) {
            }

            @Override            public void onStartTrackingTouch(SeekBar arg0) {
            }

            @Override            public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
            }
        });
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}



Compilar y probad :^]

Gracias, espero que sirva de ayuda, SALUDOS A TOD@S!

miércoles, 17 de junio de 2015

Como poner el icono png de nuestra aplicación en la ACTIONBAR (cabezera ), en Android Studio

Si queremos colocar un icono justo al lado del nombre de nuestra aplicación en la ActionBar de nuestra aplicación Android, debemos hacer lo siguiente;

- Dentro del ONCREATE escribir:

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnable(true);
actionBar.setIcon(R.mipmap/drawable.nombre_icono);

no te olvides de importar: import android.supports.v7.app.ActionBar




Saludos a tod@s :^]

Como pasar o lanzar hacia una segunda pantalla o dirección web en nuestra aplicación Android en Android Studio. Ejemplo con un BUTTON

Si queremos pasar hacia otra pantalla o hacia una paguina web desde un botón, debemos llamar la clase INTENT de la siguiente forma:

public void onClick (View view ) {

            Intent intent = new Intent (this, activty.class);
            startActivity(intent) ;
}

Lo que esta en amarillo hay sustituirlo por el nonbre de nuestro evento ONCLICK del botón o witged al que se lo asignamos, y el otro por la ACTIVITY que queremos abrir ( se nos mostrara el XLM asociado a él ).

Para la paguina web:

            Intent intent = new Intent (Intent.ACTION_VIEW);
            intent.setData(Uri.parse("dirección web"));
            startActivity(intent) ;


Saludos a tod@s

Como hacer CAPTURA DE PANTALLA en nuestra Tablet Android. How do a SCREENSHOT in Tablet divace

Realizaremos captura de pantalla de nuestra Tablet Android, screenshot, utilizando apps de Google Play especializadas, o, mediante los botones físicos de nuestro dispositivo.

Para este último, el movimiento a realizar será el siguiente:

TECLA DE VOLUMEN ( - )   +  BOTON DE APAGADO  => A LA VEZ, hasta realizar captura


Veremos que hace un sonido de cámara ( dependiendo del dispositivo y su configuración ) y que la imagen se guarda en la carpeta IMAGENES del sistema. Seguramente nos avisara con un mensaje en la parte inferior de la pantalla.

Este método es para la gran mayoría de Tablets Android del mercado, pero puede que alguna marca tenga su propio protocolo.

Espero que ayude, saludos.



To do a screenshot in a Tablet divace, you have to press in the same time the folling protocol:

VOLUME KEY ( - ) + KEY ON/OFF in the same time

Como tener la pantalla completa FULL SCREEN para nuestra aplicación Android en Android Studio.

Si queremos tener la pantalla completa para nuestra aplicación Android puedes hacerla mediante el DIVACEDEFAULT.NOACTIONBAR.FULLSCREEN en tu MANIFEST








o puedes pegar esta linea de comando que dejo a continuación dentro ONCREATE de tu MAINACTIVITY:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//Saludos a tod@s!!!

domingo, 14 de junio de 2015

Como crear un BOTÓN REDONDO o redondeado en Android Studio. Ejemplo con código XML ( parte 1 )

Existen varias maneras de hacer un botón redondo o redondeado. Una de ellas, y la más fácil/práctica, es crea el archivo en una imagen PNG y después asignarlo a un IMAGEBUTTON en su BACKGROUND.

También podemos hacerlo mediante código XML directamente en Android Studio. Aquí estan los pasos para un ejemplo de botón redondeado.

- Debemos crear el archivo recurso XML. Botón derecho sobre RES => NEW => DRAWABLE FILE:




- Le asignamos un nombre en FILE NAME:




- En la casilla siguiente, cambiamos a SHAPE:




- Y se nos aparece el nuevo recurso en una pestaña para poderlo diseñarlo a nuestro gusto:




- Para este ejemplo, crearemos una imagen rectangular pero con las esquinar redondeadas ( que nos gustan tanto en Apple en sus interfaces :^]  ) 




- Dentro de la cápsula SHAPE escribimos ANDROID:SHAPE y selecionamos RECTANGLE y cerramos el comando:




- Abrimos nueva cápsula para los bordes. Aquí se nos aparecen distintos parámetros que podemos programar. De momento, CORNERS:




- Podemos escoger qué esquinas queremos modificar. Nosotros elegimos RADIUS:






- Tenemos las dimensiones por defecto que vienen en los dispositivos:




- Insertamos en DP la medida personalizada:




- Y cerramos la cápsula con ( > ) :




- Ahora el comando para darle solidez y poder visualizarlo. Abrimos con SOLID:




- ANDROID COLOR:




- Los colores por defecto se nos muestran:




- Para nuestro ejemplo, utilizaremos el blanco mate #ffffff , y cerramos:





- Para visualizar nuestro XML, a la derecha de nuestra interface, buscamos PREVIEW :




- Y nos aparecerá nuestro rectángulo:




Ahora sólo os quedaría utilizar el recurso como BACKGROUND / DRAWABLE en un IMAGEBUTTON, TEXTVIEW o un BUTTON.

Aquí tienes el código de un botón completamente redondo:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size android:width="50dp"        android:height="50dp"></size>
    <corners android:radius="25dp"></corners>
    <solid android:color="#e1ff4000"></solid>


</shape>



En la siguiente entrada de blog relacionado con botones XML, explicaremos como programar las diferentes faces por las que pasa y se nos muestra en la interface ( cambio de color, forma,etc... )



Saludos a tod@s y gracias por tu visita!

miércoles, 10 de junio de 2015

Como cambiar el IDIOMA de nuestra aplicación Android en Android Studio. Adaptación automática por países.

La entrada de hoy habla de una de las cosas más importantes a tener en cuenta a la hora de crear una buena app: la traducción y adaptación de nuestra aplicación para cada país.

Es sencillo: a más idiomas, en más países se podrá distribuir, más público. Así que te enseñaré la manera para hacerlo paso a paso. Empecemos.

- Hay que tener a mano los códigos ISO 639-1 de cada país/idioma. También servirá el -2 y el -3. Android Studio puede reconocer todos esos códigos y hay que ir probando hasta que se muestre la bandera del país  ( lo veremos más adelante ) :

ISO 639-2/5ISO 639-3ISO 639-1Language nameScopeType
aaraaraaAfarIndividualLiving
aavAustro-Asiatic languagesCollective
abkabkabAbkhazianIndividualLiving
aceaceAchineseIndividualLiving
achachAcoliIndividualLiving
adaadaAdangmeIndividualLiving
adyadyAdygheIndividualLiving
afaAfro-Asiatic languagesCollective
afhafhAfrihiliIndividualConstructed
afrafrafAfrikaansIndividualLiving
ainainAinu (Japan)IndividualLiving
akaakaakAkanMacrolanguageLiving
akkakkAkkadianIndividualAncient
alb* / sqisqisqAlbanianMacrolanguageLiving
alealeAleutIndividualLiving
algAlgonquian languagesCollective
altaltSouthern AltaiIndividualLiving
alvAtlantic-Congo languagesCollective
amhamhamAmharicIndividualLiving
angangOld English (ca. 450-1100)IndividualHistorical
anpanpAngikaIndividualLiving
apaApache languagesCollective
aqaAlacalufan languagesCollective
aqlAlgic languagesCollective
araaraarArabicMacrolanguageLiving
arcarcOfficial Aramaic (700-300 BCE)IndividualAncient
argarganAragoneseIndividualLiving
arm* / hyehyehyArmenianIndividualLiving
arnarnMapudungunIndividualLiving
arparpArapahoIndividualLiving
artArtificial languagesCollective
arwarwArawakIndividualLiving
asmasmasAssameseIndividualLiving
astastAsturianIndividualLiving
athAthapascan languagesCollective
aufArauan languagesCollective
ausAustralian languagesCollective
avaavaavAvaricIndividualLiving
aveaveaeAvestanIndividualAncient
awaawaAwadhiIndividualLiving
awdArawakan languagesCollective
aymaymayAymaraMacrolanguageLiving
azcUto-Aztecan languagesCollective
azeazeazAzerbaijaniMacrolanguageLiving
badBanda languagesCollective
baiBamileke languagesCollective
bakbakbaBashkirIndividualLiving
balbalBaluchiMacrolanguageLiving
bambambmBambaraIndividualLiving
banbanBalineseIndividualLiving
baq* / euseuseuBasqueIndividualLiving
basbasBasa (Cameroon)IndividualLiving
batBaltic languagesCollective
bejbejBejaIndividualLiving
belbelbeBelarusianIndividualLiving
bembemBemba (Zambia)IndividualLiving
benbenbnBengaliIndividualLiving
berBerber languagesCollective
bhobhoBhojpuriIndividualLiving
bihbhBihari languagesCollective
bikbikBikolMacrolanguageLiving
binbinBiniIndividualLiving
bisbisbiBislamaIndividualLiving
blablaSiksikaIndividualLiving
bntBantu languagesCollective
bod / tib*bodboTibetanIndividualLiving
bosbosbsBosnianIndividualLiving
brabraBrajIndividualLiving
brebrebrBretonIndividualLiving
btkBatak languagesCollective
buabuaBuriatMacrolanguageLiving
bugbugBugineseIndividualLiving
bulbulbgBulgarianIndividualLiving
bur* / myamyamyBurmeseIndividualLiving
bynbynBilinIndividualLiving
cadcadCaddoIndividualLiving
caiCentral American Indian languagesCollective
carcarGalibi CaribIndividualLiving
catcatcaCatalanIndividualLiving
cauCaucasian languagesCollective
cbaChibchan languagesCollective
ccnNorth Caucasian languagesCollective
ccsSouth Caucasian languagesCollective
cdcChadic languagesCollective
cddCaddoan languagesCollective
cebcebCebuanoIndividualLiving
celCeltic languagesCollective
ces / cze*cescsCzechIndividualLiving
chachachChamorroIndividualLiving
chbchbChibchaIndividualExtinct
checheceChechenIndividualLiving
chgchgChagataiIndividualExtinct
chi* / zhozhozhChineseMacrolanguageLiving
chkchkChuukeseIndividualLiving
chmchmMari (Russia)MacrolanguageLiving
chnchnChinook jargonIndividualLiving
chochoChoctawIndividualLiving
chpchpChipewyanIndividualLiving
chrchrCherokeeIndividualLiving
chuchucuChurch SlavicIndividualAncient
chvchvcvChuvashIndividualLiving
chychyCheyenneIndividualLiving
cmcChamic languagesCollective
copcopCopticIndividualExtinct
corcorkwCornishIndividualLiving
coscoscoCorsicanIndividualLiving
cpeEnglish based Creoles and pidginsCollective
cpfFrench-Based Creoles and pidginsCollective
cppPortuguese-Based Creoles and pidginsCollective
crecrecrCreeMacrolanguageLiving
crhcrhCrimean TatarIndividualLiving
crpCreoles and pidginsCollective
csbcsbKashubianIndividualLiving
csuCentral Sudanic languagesCollective
cusCushitic languagesCollective
cym / wel*cymcyWelshIndividualLiving
cze* / cescescsCzechIndividualLiving
dakdakDakotaIndividualLiving
dandandaDanishIndividualLiving
dardarDargwaIndividualLiving
dayLand Dayak languagesCollective
deldelDelawareMacrolanguageLiving
dendenSlave (Athapascan)MacrolanguageLiving
deu / ger*deudeGermanIndividualLiving
dgrdgrDogribIndividualLiving
dindinDinkaMacrolanguageLiving
divdivdvDhivehiIndividualLiving
dmnMande languagesCollective
doidoiDogri (macrolanguage)MacrolanguageLiving
draDravidian languagesCollective
dsbdsbLower SorbianIndividualLiving
duaduaDualaIndividualLiving
dumdumMiddle Dutch (ca. 1050-1350)IndividualHistorical
dut* / nldnldnlDutchIndividualLiving
dyudyuDyulaIndividualLiving
dzodzodzDzongkhaIndividualLiving
efiefiEfikIndividualLiving
egxEgyptian languagesCollective
egyegyEgyptian (Ancient)IndividualAncient
ekaekaEkajukIndividualLiving
elxelxElamiteIndividualAncient
engengenEnglishIndividualLiving
enmenmMiddle English (1100-1500)IndividualHistorical
epoepoeoEsperantoIndividualConstructed
estestetEstonianMacrolanguageLiving
esxEskimo-Aleut languagesCollective
euqBasque (family)Collective
eus / baq*euseuBasqueIndividualLiving
eweeweeeEweIndividualLiving
ewoewoEwondoIndividualLiving
fanfanFang (Equatorial Guinea)IndividualLiving
faofaofoFaroeseIndividualLiving
fas / per*fasfaPersianMacrolanguageLiving
fatfatFantiIndividualLiving
fijfijfjFijianIndividualLiving
filfilFilipinoIndividualLiving
finfinfiFinnishIndividualLiving
fiuFinno-Ugrian languagesCollective
fonfonFonIndividualLiving
foxFormosan languagesCollective
fra / fre*frafrFrenchIndividualLiving
fre* / frafrafrFrenchIndividualLiving
frmfrmMiddle French (ca. 1400-1600)IndividualHistorical
frofroOld French (842-ca. 1400)IndividualHistorical
frrfrrNorthern FrisianIndividualLiving
frsfrsEastern FrisianIndividualLiving
fryfryfyWestern FrisianIndividualLiving
fulfulffFulahMacrolanguageLiving
furfurFriulianIndividualLiving
gaagaaGaIndividualLiving
gaygayGayoIndividualLiving
gbagbaGbaya (Central African Republic)MacrolanguageLiving
gemGermanic languagesCollective
geo* / katkatkaGeorgianIndividualLiving
ger* / deudeudeGermanIndividualLiving
gezgezGeezIndividualAncient
gilgilGilberteseIndividualLiving
glaglagdScottish GaelicIndividualLiving
gleglegaIrishIndividualLiving
glgglgglGalicianIndividualLiving
glvglvgvManxIndividualLiving
gmeEast Germanic languagesCollective
gmhgmhMiddle High German (ca. 1050-1500)IndividualHistorical
gmqNorth Germanic languagesCollective
gmwWest Germanic languagesCollective
gohgohOld High German (ca. 750-1050)IndividualHistorical
gongonGondiMacrolanguageLiving
gorgorGorontaloIndividualLiving
gotgotGothicIndividualAncient
grbgrbGreboMacrolanguageLiving
grcgrcAncient Greek (to 1453)IndividualHistorical
gre* / ellellelModern Greek (1453-)IndividualLiving
grkGreek languagesCollective
grngrngnGuaraniMacrolanguageLiving
gswgswSwiss GermanIndividualLiving
gujgujguGujaratiIndividualLiving
gwigwiGwichʼinIndividualLiving
haihaiHaidaMacrolanguageLiving
hathathtHaitianIndividualLiving
hauhauhaHausaIndividualLiving
hawhawHawaiianIndividualLiving
hebhebheHebrewIndividualLiving
herherhzHereroIndividualLiving
hilhilHiligaynonIndividualLiving
himHimachali languagesCollective
hinhinhiHindiIndividualLiving
hithitHittiteIndividualAncient
hmnhmnHmongMacrolanguageLiving
hmohmohoHiri MotuIndividualLiving
hmxHmong-Mien languagesCollective
hokHokan languagesCollective
hrvhrvhrCroatianIndividualLiving
hsbhsbUpper SorbianIndividualLiving
hunhunhuHungarianIndividualLiving
huphupHupaIndividualLiving
hye / arm*hyehyArmenianIndividualLiving
hyxArmenian (family)Collective
ibaibaIbanIndividualLiving
iboiboigIgboIndividualLiving
ice* / islislisIcelandicIndividualLiving
idoidoioIdoIndividualConstructed
iiiiiiiiSichuan YiIndividualLiving
iirIndo-Iranian languagesCollective
ijoIjo languagesCollective
ikuikuiuInuktitutMacrolanguageLiving
ileileieInterlingueIndividualConstructed
iloiloIlokoIndividualLiving
inainaiaInterlingua (International Auxiliary Language Association)IndividualConstructed
incIndic languagesCollective
indindidIndonesianIndividualLiving
ineIndo-European languagesCollective
inhinhIngushIndividualLiving
ipkipkikInupiaqMacrolanguageLiving
iraIranian languagesCollective
iroIroquoian languagesCollective
isl / ice*islisIcelandicIndividualLiving
itaitaitItalianIndividualLiving
itcItalic languagesCollective
javjavjvJavaneseIndividualLiving
jbojboLojbanIndividualConstructed
jpnjpnjaJapaneseIndividualLiving
jprjprJudeo-PersianIndividualLiving
jpxJapanese (family)Collective
jrbjrbJudeo-ArabicMacrolanguageLiving
kaakaaKara-KalpakIndividualLiving
kabkabKabyleIndividualLiving
kackacKachinIndividualLiving
kalkalklKalaallisutIndividualLiving
kamkamKamba (Kenya)IndividualLiving
kankanknKannadaIndividualLiving
karKaren languagesCollective
kaskasksKashmiriIndividualLiving
kat / geo*katkaGeorgianIndividualLiving
kaukaukrKanuriMacrolanguageLiving
kawkawKawiIndividualAncient
kazkazkkKazakhIndividualLiving
kbdkbdKabardianIndividualLiving
kdoKordofanian languagesCollective
khakhaKhasiIndividualLiving
khiKhoisan languagesCollective
khmkhmkmCentral KhmerIndividualLiving
khokhoKhotaneseIndividualAncient
kikkikkiKikuyuIndividualLiving
kinkinrwKinyarwandaIndividualLiving
kirkirkyKirghizIndividualLiving
kmbkmbKimbunduIndividualLiving
kokkokKonkani (macrolanguage)MacrolanguageLiving
komkomkvKomiMacrolanguageLiving
konkonkgKongoMacrolanguageLiving
korkorkoKoreanIndividualLiving
koskosKosraeanIndividualLiving
kpekpeKpelleMacrolanguageLiving
krckrcKarachay-BalkarIndividualLiving
krlkrlKarelianIndividualLiving
kroKru languagesCollective
krukruKurukhIndividualLiving
kuakuakjKuanyamaIndividualLiving
kumkumKumykIndividualLiving
kurkurkuKurdishMacrolanguageLiving
kutkutKutenaiIndividualLiving
ladladLadinoIndividualLiving
lahlahLahndaMacrolanguageLiving
lamlamLambaIndividualLiving
laolaoloLaoIndividualLiving
latlatlaLatinIndividualAncient
lavlavlvLatvianMacrolanguageLiving
lezlezLezghianIndividualLiving
limlimliLimburganIndividualLiving
linlinlnLingalaIndividualLiving
litlitltLithuanianIndividualLiving
lollolMongoIndividualLiving
lozlozLoziIndividualLiving
ltzltzlbLuxembourgishIndividualLiving
lualuaLuba-LuluaIndividualLiving
lublubluLuba-KatangaIndividualLiving
lugluglgGandaIndividualLiving
luiluiLuisenoIndividualLiving
lunlunLundaIndividualLiving
luoluoLuo (Kenya and Tanzania)IndividualLiving
luslusLushaiIndividualLiving
mac* / mkdmkdmkMacedonianIndividualLiving
madmadMadureseIndividualLiving
magmagMagahiIndividualLiving
mahmahmhMarshalleseIndividualLiving
maimaiMaithiliIndividualLiving
makmakMakasarIndividualLiving
malmalmlMalayalamIndividualLiving
manmanMandingoMacrolanguageLiving
mao* / mrimrimiMaoriIndividualLiving
mapAustronesian languagesCollective
marmarmrMarathiIndividualLiving
masmasMasaiIndividualLiving
may* / msamsamsMalay (macrolanguage)MacrolanguageLiving
mdfmdfMokshaIndividualLiving
mdrmdrMandarIndividualLiving
menmenMende (Sierra Leone)IndividualLiving
mgamgaMiddle Irish (900-1200)IndividualHistorical
micmicMi'kmaqIndividualLiving
minminMinangkabauIndividualLiving
mismisUncoded languagesSpecial
mkd / mac*mkdmkMacedonianIndividualLiving
mkhMon-Khmer languagesCollective
mlgmlgmgMalagasyMacrolanguageLiving
mltmltmtMalteseIndividualLiving
mncmncManchuIndividualLiving
mnimniManipuriIndividualLiving
mnoManobo languagesCollective
mohmohMohawkIndividualLiving
monmonmnMongolianMacrolanguageLiving
mosmosMossiIndividualLiving
mri / mao*mrimiMaoriIndividualLiving
msa / may*msamsMalay (macrolanguage)MacrolanguageLiving
mulmulMultiple languagesSpecial
munMunda languagesCollective
musmusCreekIndividualLiving
mwlmwlMirandeseIndividualLiving
mwrmwrMarwariMacrolanguageLiving
mya / bur*myamyBurmeseIndividualLiving
mynMayan languagesCollective
myvmyvErzyaIndividualLiving
nahNahuatl languagesCollective
naiNorth American IndianCollective
napnapNeapolitanIndividualLiving
naunaunaNauruIndividualLiving
navnavnvNavajoIndividualLiving
nblnblnrSouth NdebeleIndividualLiving
ndendendNorth NdebeleIndividualLiving
ndondongNdongaIndividualLiving
ndsndsLow GermanIndividualLiving
nepnepneNepali (macrolanguage)MacrolanguageLiving
newnewNepal BhasaIndividualLiving
ngfTrans-New Guinea languagesCollective
nianiaNiasIndividualLiving
nicNiger-Kordofanian languagesCollective
niuniuNiueanIndividualLiving
nld / dut*nldnlDutchIndividualLiving
nnonnonnNorwegian NynorskIndividualLiving
nobnobnbNorwegian BokmålIndividualLiving
nognogNogaiIndividualLiving
nonnonOld NorseIndividualHistorical
nornornoNorwegianMacrolanguageLiving
nqonqoN'KoIndividualLiving
nsonsoPediIndividualLiving
nubNubian languagesCollective
nwcnwcClassical NewariIndividualHistorical
nyanyanyNyanjaIndividualLiving
nymnymNyamweziIndividualLiving
nynnynNyankoleIndividualLiving
nyonyoNyoroIndividualLiving
nzinziNzimaIndividualLiving
ociociocOccitan (post 1500)IndividualLiving
ojiojiojOjibwaMacrolanguageLiving
omqOto-Manguean languagesCollective
omvOmotic languagesCollective
orioriorOriya (macrolanguage)MacrolanguageLiving
ormormomOromoMacrolanguageLiving
osaosaOsageIndividualLiving
ossossosOssetianIndividualLiving
otaotaOttoman Turkish (1500-1928)IndividualHistorical
otoOtomian languagesCollective
paaPapuan languagesCollective
pagpagPangasinanIndividualLiving
palpalPahlaviIndividualAncient
pampamPampangaIndividualLiving
panpanpaPanjabiIndividualLiving
pappapPapiamentoIndividualLiving
paupauPalauanIndividualLiving
peopeoOld Persian (ca. 600-400 B.C.)IndividualHistorical
per* / fasfasfaPersianMacrolanguageLiving
phiPhilippine languagesCollective
phnphnPhoenicianIndividualAncient
plfCentral Malayo-Polynesian languagesCollective
pliplipiPaliIndividualAncient
polpolplPolishIndividualLiving
ponponPohnpeianIndividualLiving
porporptPortugueseIndividualLiving
pozMalayo-Polynesian languagesCollective
pqeEastern Malayo-Polynesian languagesCollective
pqwWestern Malayo-Polynesian languagesCollective
praPrakrit languagesCollective
proproOld Provençal (to 1500)IndividualHistorical
puspuspsPushtoMacrolanguageLiving
qaa-qtzqaa-qtzReserved for local useLocal
quequequQuechuaMacrolanguageLiving
qweQuechuan (family)Collective
rajrajRajasthaniMacrolanguageLiving
raprapRapanuiIndividualLiving
rarrarRarotonganIndividualLiving
roaRomance languagesCollective
rohrohrmRomanshIndividualLiving
romromRomanyMacrolanguageLiving
ron / rum*ronroRomanianIndividualLiving
runrunrnRundiIndividualLiving
ruprupMacedo-RomanianIndividualLiving
rusrusruRussianIndividualLiving
sadsadSandaweIndividualLiving
sagsagsgSangoIndividualLiving
sahsahYakutIndividualLiving
saiSouth American Indian languagesCollective
salSalishan languagesCollective
samsamSamaritan AramaicIndividualExtinct
sansansaSanskritIndividualAncient
sassasSasakIndividualLiving
satsatSantaliIndividualLiving
scnscnSicilianIndividualLiving
scoscoScotsIndividualLiving
sdvEastern Sudanic languagesCollective
selselSelkupIndividualLiving
semSemitic languagesCollective
sgasgaOld Irish (to 900)IndividualHistorical
sgnSign languagesCollective
shnshnShanIndividualLiving
sidsidSidamoIndividualLiving
sinsinsiSinhalaIndividualLiving
sioSiouan languagesCollective
sitSino-Tibetan languagesCollective
slaSlavic languagesCollective
slk / slo*slkskSlovakIndividualLiving
slvslvslSlovenianIndividualLiving
smasmaSouthern SamiIndividualLiving
smesmeseNorthern SamiIndividualLiving
smiSami languagesCollective
smjsmjLule SamiIndividualLiving
smnsmnInari SamiIndividualLiving
smosmosmSamoanIndividualLiving
smssmsSkolt SamiIndividualLiving
snasnasnShonaIndividualLiving
sndsndsdSindhiIndividualLiving
snksnkSoninkeIndividualLiving
sogsogSogdianIndividualAncient
somsomsoSomaliIndividualLiving
sonSonghai languagesCollective
sotsotstSouthern SothoIndividualLiving
spaspaesSpanishIndividualLiving
sqiAlbanian languagesCollective
sqi / alb*sqisqAlbanianMacrolanguageLiving
srdsrdscSardinianMacrolanguageLiving
srnsrnSranan TongoIndividualLiving
srpsrpsrSerbianIndividualLiving
srrsrrSererIndividualLiving
ssaNilo-Saharan languagesCollective
sswsswssSwatiIndividualLiving
suksukSukumaIndividualLiving
sunsunsuSundaneseIndividualLiving
sussusSusuIndividualLiving
suxsuxSumerianIndividualAncient
swaswaswSwahili (macrolanguage)MacrolanguageLiving
sweswesvSwedishIndividualLiving
sycsycClassical SyriacIndividualHistorical
sydSamoyedic languagesCollective
syrsyrSyriacMacrolanguageLiving
tahtahtyTahitianIndividualLiving
taiTai languagesCollective
tamtamtaTamilIndividualLiving
tattatttTatarIndividualLiving
tbqTibeto-Burman languagesCollective
teltelteTeluguIndividualLiving
temtemTimneIndividualLiving
terterTerenoIndividualLiving
tettetTetumIndividualLiving
tgktgktgTajikIndividualLiving
tgltgltlTagalogIndividualLiving
thathathThaiIndividualLiving
tib* / bodbodboTibetanIndividualLiving
tigtigTigreIndividualLiving
tirtirtiTigrinyaIndividualLiving
tivtivTivIndividualLiving
tkltklTokelauIndividualLiving
tlhtlhKlingonIndividualConstructed
tlitliTlingitIndividualLiving
tmhtmhTamashekMacrolanguageLiving
togtogTonga (Nyasa)IndividualLiving
tontontoTonga (Tonga Islands)IndividualLiving
tpitpiTok PisinIndividualLiving
trkTurkic languagesCollective
tsitsiTsimshianIndividualLiving
tsntsntnTswanaIndividualLiving
tsotsotsTsongaIndividualLiving
tuktuktkTurkmenIndividualLiving
tumtumTumbukaIndividualLiving
tupTupi languagesCollective
turturtrTurkishIndividualLiving
tutAltaic languagesCollective
tuwTungus languagesCollective
tvltvlTuvaluIndividualLiving
twitwitwTwiIndividualLiving
tyvtyvTuvinianIndividualLiving
udmudmUdmurtIndividualLiving
ugaugaUgariticIndividualAncient
uiguigugUighurIndividualLiving
ukrukrukUkrainianIndividualLiving
umbumbUmbunduIndividualLiving
undundUndeterminedSpecial
urdurdurUrduIndividualLiving
urjUralic languagesCollective
uzbuzbuzUzbekMacrolanguageLiving
vaivaiVaiIndividualLiving
venvenveVendaIndividualLiving
vievieviVietnameseIndividualLiving
volvolvoVolapükIndividualConstructed
votvotVoticIndividualLiving
wakWakashan languagesCollective
walwalWolayttaIndividualLiving
warwarWaray (Philippines)IndividualLiving
waswasWashoIndividualLiving
wel* / cymcymcyWelshIndividualLiving
wenSorbian languagesCollective
wlnwlnwaWalloonIndividualLiving
wolwolwoWolofIndividualLiving
xalxalKalmykIndividualLiving
xgnMongolian languagesCollective
xhoxhoxhXhosaIndividualLiving
xndNa-Dene languagesCollective
yaoyaoYaoIndividualLiving
yapyapYapeseIndividualLiving
yidyidyiYiddishMacrolanguageLiving
yoryoryoYorubaIndividualLiving
ypkYupik languagesCollective
zapzapZapotecMacrolanguageLiving
zblzblBlissymbolsIndividualConstructed
zenzenZenagaIndividualLiving
zghzghStandard Moroccan TamazightIndividualLiving
zhazhazaZhuangMacrolanguageLiving
zho / chi*zhozhChineseMacrolanguageLiving
zhxChinese (family)Collective
zleEast Slavic languagesCollective
zlsSouth Slavic languagesCollective
zlwWest Slavic languagesCollective
zndZande languagesCollective
zulzulzuZuluIndividualLiving
zunzunZuniIndividualLiving
zxxzxxNo linguistic contentSpecial
zzazzaZazaMacrolanguageLiving

Ahora, hay que crear un nuevo archivo STRING.XLM donde traduciremos cada STRING en el idioma que queremos.

En Android Studio, debemos crear los nuevos directorios de recursos VALUES que se encuentran dentro de RES y se alojan los recurso STRINGS.XLM:

- Botón derecho sobre RES -> nuevo recurso directorio -> y en el mismo nombre VALUES le añadimos un guión y el código del país ( primera columna, aunque hay que ir probando hasta que nos aparezca la bandera del país justo al lado del recurso STRING) -> copiar el recurso que nos viene por defecto donde están todos nuestros STRINGS en nuestro idioma principal -> pegar en la nueva carpeta directorio VALUES-(codigo) del nuevo idioma -> traducir cada STRING




















- Abrimos la pestaña:


 




- Y nos aparece con la bandera:





- Ahora podemos modificar cada uno de los STRING del nuevo recurso STRING.XLM que será leído por el dispositivo según la configuración de idioma escogido por el usuario:








Propongo que hagas la prueba de compilación en un dispositivo externo del PC (conectado vía USB) y le puedas cambiar el idioma y ver si has completado con éxito las traducciones. Saludos a tod@s por la visita!