Cambiar idioma mediante programación en Android

¿Es posible cambiar el idioma de una aplicación mediante programación mientras sigue utilizando los recursos de Android?

De no ser así, ¿es posible solicitar un recurso en un idioma específico?

Me gustaría dejar que el usuario cambie el idioma de la aplicación desde la aplicación.

26 Solutions collect form web for “Cambiar idioma mediante programación en Android”

Es posible. Puede configurar la configuración regional. Sin embargo, no lo recomendaría. Lo hemos intentado en las primeras etapas, es básicamente luchar contra el sistema.

Tenemos el mismo requisito para cambiar el idioma, pero decidimos resolver el hecho de que la interfaz de usuario debe ser igual que la interfaz de usuario de teléfono. Estaba funcionando a través de configuración local pero era demasiado buggy. Y tienes que configurarlo cada vez que entras actividad (cada actividad) de mi experiencia. Aquí está un código si usted todavía necesita esto (otra vez, no recomiendo eso)

Resources res = context.getResources(); // Change locale settings in the app. DisplayMetrics dm = res.getDisplayMetrics(); android.content.res.Configuration conf = res.getConfiguration(); conf.setLocale(new Locale(language_code.toLowerCase())); // API 17+ only. // Use conf.locale = new Locale(...) if targeting lower versions res.updateConfiguration(conf, dm); 

Si tiene contenido específico de idioma, puede cambiar esa base en la configuración.

Es realmente trabajo … fa = Persian … es = Inglés …
Introduzca su código de idioma en languageToLoad:

 import android.app.Activity; import android.content.res.Configuration; import android.os.Bundle; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String languageToLoad = "fa"; // your language Locale locale = new Locale(languageToLoad); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); this.setContentView(R.layout.main); } } 

Puedes encontrar un ejemplo aquí

Buscaba una forma de cambiar el lenguaje del sistema mediante programación. Aunque comprendo perfectamente que una aplicación normal nunca debe hacer eso y en su lugar:

  • El usuario debe ser señalado (a través de una intención) a la configuración del sistema para cambiar manualmente
  • La aplicación debe manejar su localización por sí solo tal como se describe en la respuesta de Alex

Había una necesidad de cambiar realmente el lenguaje del sistema programmtically.

¡Esto es API no documentado y por lo tanto no debe ser utilizado para aplicaciones de mercado / usuario final!

De todos modos heres la solución que encontré:

  Locale locale = new Locale(targetLocaleAsString); Class amnClass = Class.forName("android.app.ActivityManagerNative"); Object amn = null; Configuration config = null; // amn = ActivityManagerNative.getDefault(); Method methodGetDefault = amnClass.getMethod("getDefault"); methodGetDefault.setAccessible(true); amn = methodGetDefault.invoke(amnClass); // config = amn.getConfiguration(); Method methodGetConfiguration = amnClass.getMethod("getConfiguration"); methodGetConfiguration.setAccessible(true); config = (Configuration) methodGetConfiguration.invoke(amn); // config.userSetLocale = true; Class configClass = config.getClass(); Field f = configClass.getField("userSetLocale"); f.setBoolean(config, true); // set the locale to the new value config.locale = locale; // amn.updateConfiguration(config); Method methodUpdateConfiguration = amnClass.getMethod("updateConfiguration", Configuration.class); methodUpdateConfiguration.setAccessible(true); methodUpdateConfiguration.invoke(amn, config); 

Si quieres mantener el idioma cambiado en toda tu aplicación, tienes que hacer dos cosas.

Primero, cree una actividad básica y haga que todas sus actividades se extiendan desde esto:

 public class BaseActivity extends AppCompatActivity { private Locale mCurrentLocale; @Override protected void onStart() { super.onStart(); mCurrentLocale = getResources().getConfiguration().locale; } @Override protected void onRestart() { super.onRestart(); Locale locale = getLocale(this); if (!locale.equals(mCurrentLocale)) { mCurrentLocale = locale; recreate(); } } public static Locale getLocale(Context context){ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); String lang = sharedPreferences.getString("language", "en"); switch (lang) { case "English": lang = "en"; break; case "Spanish": lang = "es"; break; } return new Locale(lang); } } 

Tenga en cuenta que guardo el nuevo idioma en una sharedPreference.

En segundo lugar, crear una extensión de la aplicación como este:

  public class App extends Application { @Override public void onCreate() { super.onCreate(); setLocale(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setLocale(); } private void setLocale() { final Resources resources = getResources(); final Configuration configuration = resources.getConfiguration(); final Locale locale = getLocale(this); if (!configuration.locale.equals(locale)) { configuration.setLocale(locale); resources.updateConfiguration(configuration, null); } } } 

Tenga en cuenta que getLocale () es el mismo que el anterior.

¡Eso es todo! Espero que esto pueda ayudar a alguien.

Estoy cambiado por el idioma alemán para mi propia aplicación.

Aquí está mi código correcto. Alguien quiere usar esto mismo para mí .. (Cómo cambiar el idioma en android programaticamente)

mi código:

 Configuration config ; // variable declaration in globally // this part is given inside onCreate Method starting and before setContentView() public void onCreate(Bundle icic) { super.onCreate(icic); config = new Configuration(getResources().getConfiguration()); config.locale = Locale.GERMAN ; getResources().updateConfiguration(config,getResources().getDisplayMetrics()); setContentView(R.layout.newdesign); } 

Sólo agregando una pieza extra que me tropezó.

Mientras que las otras respuestas funcionan bien con "de" por ejemplo

 String lang = "de"; Locale locale = new Locale(lang); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 

Lo anterior no funcionará con, por ejemplo, el "fr_BE" por lo que utilizaría la carpeta values-fr-rBE o similar.

Necesita el siguiente cambio leve para trabajar con "fr_BE"

 String lang = "fr"; //create a string for country String country = "BE"; //use constructor with country Locale locale = new Locale(lang, country); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 

Si escribes

 android:configChanges="locale" 

En cada actividad que no es necesario configurarla cada vez que ingresa a la actividad

Crear una clase Extiende "Aplicación" y crea un método estático. A continuación, puede llamar a este método en todas las actividades antes de "setContentView".

  public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); } public static void setLocaleFa (Context context){ Locale locale = new Locale("fa"); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; context.getApplicationContext().getResources().updateConfiguration(config, null); } public static void setLocaleEn (Context context){ Locale locale = new Locale("en_US"); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; context.getApplicationContext().getResources().updateConfiguration(config, null); } 

}

Uso en actividades:

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyApp.setLocaleFa(MainActivity.this); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); 

}

La única solución que funciona completamente para mí es una combinación del código de Alex Volovoy con el mecanismo de reinicio de la aplicación:

 void restartApplication() { Intent i = new Intent(MainTabActivity.context, MagicAppRestart.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); MainTabActivity.context.startActivity(i); } /** This activity shows nothing; instead, it restarts the android process */ public class MagicAppRestart extends Activity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); finish(); } protected void onResume() { super.onResume(); startActivityForResult(new Intent(this, MainTabActivity.class), 0); } } 

Para Android 7.0 Nougat (y inferior) siga este artículo:

Cambiar idioma de forma programática en Android

Respuesta antigua
Esto incluye soporte RTL / LTR:

 public static void changeLocale(Context context, Locale locale) { Configuration conf = context.getResources().getConfiguration(); conf.locale = locale; Locale.setDefault(locale); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { conf.setLayoutDirection(conf.locale); } context.getResources().updateConfiguration(conf, context.getResources().getDisplayMetrics()); } 

Sé que es tarde para responder, pero he encontrado este artículo aquí . Lo que explica todo el proceso muy bien y le proporciona un código bien estructurado.

Locale Clase de ayuda:

 import android.annotation.TargetApi; import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; import android.preference.PreferenceManager; import java.util.Locale; /** * This class is used to change your application locale and persist this change for the next time * that your app is going to be used. * <p/> * You can also change the locale of your application on the fly by using the setLocale method. * <p/> * Created by gunhansancar on 07/10/15. */ public class LocaleHelper { private static final String SELECTED_LANGUAGE = "Locale.Helper.Selected.Language"; public static Context onAttach(Context context) { String lang = getPersistedData(context, Locale.getDefault().getLanguage()); return setLocale(context, lang); } public static Context onAttach(Context context, String defaultLanguage) { String lang = getPersistedData(context, defaultLanguage); return setLocale(context, lang); } public static String getLanguage(Context context) { return getPersistedData(context, Locale.getDefault().getLanguage()); } public static Context setLocale(Context context, String language) { persist(context, language); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return updateResources(context, language); } return updateResourcesLegacy(context, language); } private static String getPersistedData(Context context, String defaultLanguage) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.getString(SELECTED_LANGUAGE, defaultLanguage); } private static void persist(Context context, String language) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = preferences.edit(); editor.putString(SELECTED_LANGUAGE, language); editor.apply(); } @TargetApi(Build.VERSION_CODES.N) private static Context updateResources(Context context, String language) { Locale locale = new Locale(language); Locale.setDefault(locale); Configuration configuration = context.getResources().getConfiguration(); configuration.setLocale(locale); configuration.setLayoutDirection(locale); return context.createConfigurationContext(configuration); } @SuppressWarnings("deprecation") private static Context updateResourcesLegacy(Context context, String language) { Locale locale = new Locale(language); Locale.setDefault(locale); Resources resources = context.getResources(); Configuration configuration = resources.getConfiguration(); configuration.locale = locale; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { configuration.setLayoutDirection(locale); } resources.updateConfiguration(configuration, resources.getDisplayMetrics()); return context; } } 

Necesita reemplazar attachBaseContext y llamar a LocaleHelper.onAttach () para inicializar la configuración de configuración regional en su aplicación.

 import android.app.Application; import android.content.Context; import com.gunhansancar.changelanguageexample.helper.LocaleHelper; public class MainApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(LocaleHelper.onAttach(base, "en")); } } 

Todo lo que tienes que hacer es agregar

 LocaleHelper.onCreate(this, "en"); 

Donde quiera cambiar la configuración regional.

Yo estaba enfrentando el mismo problema. En GitHub encontré la librería Android-LocalizationActivity .

Esta biblioteca hace que sea muy sencillo cambiar el idioma de la aplicación en tiempo de ejecución, como se puede ver en el ejemplo de código siguiente. Un ejemplo de proyecto que incluye el código de ejemplo a continuación y más información se puede encontrar en la página github.

La LocalizationActivity extiende AppCompatActivity, por lo que también se puede utilizar cuando se utilizan Fragmentos.

 public class MainActivity extends LocalizationActivity implements View.OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_simple); findViewById(R.id.btn_th).setOnClickListener(this); findViewById(R.id.btn_en).setOnClickListener(this); } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_en) { setLanguage("en"); } else if (id == R.id.btn_th) { setLanguage("th"); } } } 
 Locale locale = new Locale("en"); Locale.setDefault(locale); Configuration config = context.getResources().getConfiguration(); config.setLocale(locale); context.createConfigurationContext(config); 

Actualización importante:

 context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); 

Tenga en cuenta que en SDK> = 21, debe llamar a 'Resources.updateConfiguration ()' , de lo contrario los recursos no se actualizarán.

 /*change language at Run-time*/ //use method like that: //setLocale("en"); public void setLocale(String lang) { myLocale = new Locale(lang); Resources res = getResources(); DisplayMetrics dm = res.getDisplayMetrics(); Configuration conf = res.getConfiguration(); conf.locale = myLocale; res.updateConfiguration(conf, dm); Intent refresh = new Intent(this, AndroidLocalize.class); startActivity(refresh); } 

Locale configuration Locale debe establecerse en cada activity antes de configurar el contenido: this.setContentView(R.layout.main);

En primer lugar crear multi string.xml para diferentes idiomas; A continuación, utilice este bloque de código en el método onCreate() :

 super.onCreate(savedInstanceState); String languageToLoad = "fr"; // change your language here Locale locale = new Locale(languageToLoad); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); this.setContentView(R.layout.main); 

Alex Volovoy respuesta sólo funciona para mí si está en onCreate método de la actividad.

La respuesta que funciona en todos los métodos está en otro hilo

Cambiar idioma mediante programación en Android

Aquí está la adaptación del código

 Resources standardResources = getBaseContext().getResources(); AssetManager assets = standardResources.getAssets(); DisplayMetrics metrics = standardResources.getDisplayMetrics(); Configuration config = new Configuration(standardResources.getConfiguration()); config.locale = new Locale(languageToLoad); Resources defaultResources = new Resources(assets, metrics, config); 

Espero que ayude.

Tome en cuenta que esta solución utilizando updateConfiguration no funcionará más con la liberación de Android M que viene en unas pocas semanas. La nueva forma de hacer esto ahora está utilizando el método ContextThemeWrapper de ContextThemeWrapper consulte ContextThemeWrapper API

Usted puede encontrar mi solución completa aquí desde que enfrenté el problema yo mismo: https://stackoverflow.com/a/31787201/2776572

Hay algunos pasos que debe implementar

En primer lugar, debe cambiar la configuración regional de su configuración

 Resources resources = context.getResources(); Configuration configuration = resources.getConfiguration(); configuration.locale = new Locale(language); resources.updateConfiguration(configuration, resources.getDisplayMetrics()); 

En segundo lugar, si desea que los cambios se apliquen directamente al diseño visible, puede actualizar las vistas directamente o simplemente puede llamar a activity.recreate () para reiniciar la actividad actual.

Y también tienes que persistir los cambios porque después de que el usuario cierre su aplicación, entonces perdería el cambio de idioma.

He explicado una solución más detallada en mi blog Cambiar idioma mediante programación en Android

Básicamente, sólo tienes que llamar a LocaleHelper.onCreate () en tu clase de aplicación y si quieres cambiar el locale en el momento, puedes llamar a LocaleHelper.setLocale ()

Similar a la versión aceptada pero 2017 y reinicio añadido (sin reiniciar, a veces la siguiente Actividad todavía procesa el inglés):

 // Inside some activity... private void changeDisplayLanguage(String langCode) { // Step 1. Change the locale in the app's configuration Resources res = getResources(); android.content.res.Configuration conf = res.getConfiguration(); conf.setLocale(currentLocale); createConfigurationContext(conf); // Step 2. IMPORTANT! you must restart the app to make sure it works 100% restart(); } private void restart() { PackageManager packageManager = getPackageManager(); Intent intent = packageManager.getLaunchIntentForPackage(getPackageName()); ComponentName componentName = intent.getComponent(); Intent mainIntent = IntentCompat.makeRestartActivityTask(componentName); mainIntent.putExtra("app_restarting", true); PrefUtils.putBoolean("app_restarting", true); startActivity(mainIntent); System.exit(0); } 

Primero se crean los valores de nombre de directorio- "Nombre de idioma" como hindi que escriben "hola" y la misma cadena de nombre de archivo de copia en este directorio y cambiar el valor no cambian el parámetro después de establecer debajo de código en su acción como botón etc ….

 Locale myLocale = new Locale("hi"); Resources res = getResources(); DisplayMetrics dm = res.getDisplayMetrics(); Configuration conf = res.getConfiguration(); conf.locale = myLocale; res.updateConfiguration(conf, dm); Intent refresh = new Intent(Home.this, Home.class); startActivity(refresh); finish(); 

Esto funciona cuando presiono el botón para cambiar el idioma del texto de mi TextView. (Strings.xml en la carpeta values-de)

 String languageToLoad = "de"; // your language Configuration config = getBaseContext().getResources().getConfiguration(); Locale locale = new Locale(languageToLoad); Locale.setDefault(locale); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); recreate(); 

Tiempo para una actualización correcta.

En primer lugar, la lista obsoleta con la API en la que fue obsoleta:

  • configuration.locale (API 17)
  • updateConfiguration(configuration, displaymetrics) (API 17)

La cosa que ninguna pregunta contestó recientemente ha conseguido a la derecha es el uso del nuevo método .

CreateConfigurationContext es el nuevo método para updateConfiguration.

Algunos lo han utilizado independientemente como esto:

 Configuration overrideConfiguration = ctx.getResources().getConfiguration(); Locale locale = new Locale("en_US"); overrideConfiguration.setLocale(locale); createConfigurationContext(overrideConfiguration); 

… pero eso no funciona. ¿Por qué? El método devuelve un contexto, que luego se utiliza para manejar las traducciones de Strings.xml y otros recursos localizados (imágenes, diseños, etc.).

El uso correcto es así:

 Configuration overrideConfiguration = ctx.getResources().getConfiguration(); Locale locale = new Locale("en_US"); overrideConfiguration.setLocale(locale); //the configuration can be used for other stuff as well Context context = createConfigurationContext(overrideConfiguration); Resources resources = context.getResources(); 

Si acaba de copiarlo en su IDE, es posible que vea una advertencia de que la API requiere una API de orientación 17 o superior. Esto puede ser trabajado en torno a ponerlo en un método y la adición de la anotación @TargetApi(17)

Pero espera. ¿Qué pasa con la API más antigua?

Necesita crear otro método utilizando updateConfiguration sin la anotación TargetApi.

 Resources res = YourApplication.getInstance().getResources(); // Change locale settings in the app. DisplayMetrics dm = res.getDisplayMetrics(); android.content.res.Configuration conf = res.getConfiguration(); conf.locale = new Locale("th"); res.updateConfiguration(conf, dm); 

No es necesario que devuelva un contexto aquí.

Ahora, manejar estos puede ser difícil. En API 17+ necesita el contexto creado (o los recursos del contexto creado) para obtener los recursos adecuados basados ​​en la localización. Como manejas esto?

Bueno, esta es la forma en que lo hago:

 /** * Full locale list: https://stackoverflow.com/questions/7973023/what-is-the-list-of-supported-languages-locales-on-android * @param lang language code (eg en_US) * @return the context * PLEASE READ: This method can be changed for usage outside an Activity. Simply add a COntext to the arguments */ public Context setLanguage(String lang/*, Context c*/){ Context c = AndroidLauncher.this;//remove if the context argument is passed. This is a utility line, can be removed totally by replacing calls to c with the activity (if argument Context isn't passed) int API = Build.VERSION.SDK_INT; if(API >= 17){ return setLanguage17(lang, c); }else{ return setLanguageLegacy(lang, c); } } /** * Set language for API 17 * @param lang * @param c * @return */ @TargetApi(17) public Context setLanguage17(String lang, Context c){ Configuration overrideConfiguration = c.getResources().getConfiguration(); Locale locale = new Locale(lang); Locale.setDefault(locale); overrideConfiguration.setLocale(locale); //the configuration can be used for other stuff as well Context context = createConfigurationContext(overrideConfiguration);//"local variable is redundant" if the below line is uncommented, it is needed //Resources resources = context.getResources();//If you want to pass the resources instead of a Context, uncomment this line and put it somewhere useful return context; } public Context setLanguageLegacy(String lang, Context c){ Resources res = c.getResources(); // Change locale settings in the app. DisplayMetrics dm = res.getDisplayMetrics();//Utility line android.content.res.Configuration conf = res.getConfiguration(); conf.locale = new Locale(lang);//setLocale requires API 17+ - just like createConfigurationContext Locale.setDefault(conf.locale); res.updateConfiguration(conf, dm); //Using this method you don't need to modify the Context itself. Setting it at the start of the app is enough. As you //target both API's though, you want to return the context as you have no clue what is called. Now you can use the Context //supplied for both things return c; } 

Este código funciona teniendo un método que hace llamadas al método apropiado basado en qué API. Esto es algo que he hecho con un montón de diferentes llamadas obsoletas (incluyendo Html.fromHtml). Tiene un método que toma los argumentos necesarios, que luego lo divide en uno de dos (o tres o más) métodos y devuelve el resultado apropiado basado en el nivel de API. Es flexible como usted no tiene que comprobar varias veces, el método de la "entrada" lo hace para usted. El método de entrada aquí es setLanguage

POR FAVOR LEA ESTO ANTES DE USARLO

Necesita utilizar el contexto devuelto cuando obtiene recursos. ¿Por qué? He visto otras respuestas aquí que utilizan createConfigurationContext y no utiliza el contexto que devuelve. Para que funcione así, updateConfiguration tiene que ser llamado. Que está obsoleto. Utilice el contexto devuelto por el método para obtener recursos.

Ejemplo de uso :

Constructor o en algún lugar similar:

 ctx = getLanguage(lang);//lang is loaded or generated. How you get the String lang is not something this answer handles (nor will handle in the future) 

Y entonces, donde quiera que desee obtener los recursos que hacer:

 String fromResources = ctx.getString(R.string.helloworld); 

Usar cualquier otro contexto (en teoría) romperá esto.

AFAIK todavía tiene que usar un contexto de actividad para mostrar diálogos o Tostadas. Para que pueda utilizar una instancia de una actividad (si está fuera)


And finally, use recreate() on the activity to refresh the content. Shortcut to not have to create an intent to refresh.

Just handle in method

 @Override public void onConfigurationChanged(android.content.res.Configuration newConfig). 

Follow the Link

I think it is useful

I encountered the same problem: I needed to set my language to a language chosen in my app.

My fix was this:

  1. Keep your strings in your XML file, don't extract it to resources
  2. Make an exact copy of your XML and rename it to _languagecode, like _fr (use lowercase!)
  3. Fix your translations in your XML copy
  4. In code you check your app-level language and inflate the relevant XML

Ejemplo:

  String languageInitials = MyAppconfig.currentLanguageInitials(); if (languageInitials.equals("NL")) { view = inflater.inflate(R.layout.mylayout_nl, container, false); } else { view = inflater.inflate(R.layout.fragment_mylayout_fr, container, false); } 

From these XML's, you can still extract the needed strings to resources.

Funciona para mi

 Resources res = YourApplication.getInstance().getResources(); // Change locale settings in the app. DisplayMetrics dm = res.getDisplayMetrics(); android.content.res.Configuration conf = res.getConfiguration(); conf.locale = new Locale("th"); res.updateConfiguration(conf, dm); 
  • Android, obtener ID de recurso de cadena?
  • Recurso de cadena con símbolo "%"
  • No se encontró ningún recurso que coincida con el nombre dado
  • Cambiar el recurso de cadena por sabor / debug-build
  • Hay alguna manera de encontrar el identificador de recursos de dibujable
  • Descargar y reemplazar archivos de recursos de Android
  • Escapar comillas simples en el recurso xml para Android
  • Android obtiene una lista de colores de los recursos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.