Diferencia entre revisiones de «PDM Acceso a recursos»
Ir a la navegación
Ir a la búsqueda
(Página creada con « * Máis información en: :* [https://developer.android.com/guide/topics/resources/available-resources?hl=es-419 https://developer.android.com/guide/topics/resources/avail...») |
|||
| Línea 4: | Línea 4: | ||
:* [https://developer.android.com/guide/topics/resources/accessing-resources?hl=es-419 https://developer.android.com/guide/topics/resources/accessing-resources?hl=es-419] | :* [https://developer.android.com/guide/topics/resources/accessing-resources?hl=es-419 https://developer.android.com/guide/topics/resources/accessing-resources?hl=es-419] | ||
:* [https://developer.android.com/reference/android/content/Context?hl=es-419#getResources() getResources()]. | :* [https://developer.android.com/reference/android/content/Context?hl=es-419#getResources() getResources()]. | ||
| + | |||
| + | |||
| + | * Normalmente emgregaremos a orde: getResources().getZZZZZZ | ||
| + | : sendo ZZZZZ o tipo de recurso que queiramos recuperar. | ||
| + | |||
| + | : Por exemplo, para recuperar unha cadea gardada un arquivo de recursos /res/values/ e que teña de nome 'cadea' empregaríamos esta orde: | ||
| + | <syntaxhighlight lang="java" enclose="div" highlight=""> | ||
| + | getResources().getString(R.string.cadea); | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | : Por exemplo, para recuperar unha String-Array gardado un arquivo de recursos /res/values/ e que teña de nome 'datos_array' empregaríamos esta orde: | ||
| + | <syntaxhighlight lang="java" enclose="div" highlight=""> | ||
| + | getResources().getStringArray(R.string.datos_array); | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | * Tamén podemos, a partir dun nome, obter o id do recurso que ten ese nome en algún dos cartafoles /res/, empregando o [https://developer.android.com/reference/android/content/res/Resources#getIdentifier(java.lang.String,%20java.lang.String,%20java.lang.String) método getIdentifier()] que espera recibir tres datos: o nome do recurso, o tipo de recurso e o paquete. | ||
| + | <syntaxhighlight lang="java" enclose="div" highlight=""> | ||
| + | ImageView foto = findViewById(R.id.imvFoto); | ||
| + | foto.setImageResource(getResources().getIdentifier("foto1","drawable",getPackageName())); | ||
| + | </syntaxhighlight> | ||
| + | : No exemplo estaríamos a cargar unha foto (que se atopa en /res/drawable/foto1.jpg) nun ImageView. | ||
| + | |||
| + | : Neste caso temos que ter <u>coidado con varios aspecto</u>: | ||
| + | :* O nome do identificador que vai no primeiro parámetro '''non leva a extensión da imaxe a cargar'''. | ||
| + | :* O terceiro parámetro é o nome do paquete da Activity. Se estamos dentro dunha clase que non represente a activity, necesitaremos unha referencia á mesma, podendo empregar a forma: NomeActivity.this.getPackageName() | ||
Revisión del 12:53 21 nov 2020
- Máis información en:
- Normalmente emgregaremos a orde: getResources().getZZZZZZ
- sendo ZZZZZ o tipo de recurso que queiramos recuperar.
- Por exemplo, para recuperar unha cadea gardada un arquivo de recursos /res/values/ e que teña de nome 'cadea' empregaríamos esta orde:
getResources().getString(R.string.cadea);
- Por exemplo, para recuperar unha String-Array gardado un arquivo de recursos /res/values/ e que teña de nome 'datos_array' empregaríamos esta orde:
getResources().getStringArray(R.string.datos_array);
- Tamén podemos, a partir dun nome, obter o id do recurso que ten ese nome en algún dos cartafoles /res/, empregando o método getIdentifier() que espera recibir tres datos: o nome do recurso, o tipo de recurso e o paquete.
ImageView foto = findViewById(R.id.imvFoto);
foto.setImageResource(getResources().getIdentifier("foto1","drawable",getPackageName()));
- No exemplo estaríamos a cargar unha foto (que se atopa en /res/drawable/foto1.jpg) nun ImageView.
- Neste caso temos que ter coidado con varios aspecto:
- O nome do identificador que vai no primeiro parámetro non leva a extensión da imaxe a cargar.
- O terceiro parámetro é o nome do paquete da Activity. Se estamos dentro dunha clase que non represente a activity, necesitaremos unha referencia á mesma, podendo empregar a forma: NomeActivity.this.getPackageName()
-- Ángel D. Fernández González -- (2018).