Colores en Android
Estoy usando colores en Android pero no conozco el formato. Aquí hay un ejemplo de trabajo en JAVA.
public Color getColor(int i) { switch (i%8) { case 0: return Color.blue; case 1: return Color.red; case 2: return Color.magenta; case 3: return Color.orange; case 4: return Color.pink; case 5: return Color.green; case 6: return Color.cyan; case 7: return new Color(250, 220, 100); } return (new Color((i*80)%255,(i*80)%255,(i*80)%255)) ;
}
- ¿Cómo configuro la versión Gradle en Android Studio 1.3?
- ¿Cómo cambiar el tamaño del contenido de una webview en android?
- Java equivalente de #ifdef que permite código no compilable
- ¿Debo usar estática o getters / setters?
- Uso del sensor magnético
¿Cómo puedo crear esto con Android. Lo que estoy tratando de hacer es devolver un color de ocho posibilidades.
- ¿Cómo utilizo un sombreado en las líneas de color dibujadas con GL_LINES y OpenGL ES 2.0
- Java events, handlers and listeners pregunta
- ¿Existe una función que convierte HTML en texto sin formato?
- Problema al importar el paquete android.support.v4
- Android FragmentLayout no está cargado
- Usando secciones con fragmentos, NullPointerException
- Las notificaciones desaparecen tan pronto como finaliza el servicio
- Cambio de Android Color de sombra de elevación de material
El nombre de las constantes de color son mayúsculas en un Android, y un color es un valor int. Por lo tanto, debe cambiar el tipo de retorno de Color a int. En segundo lugar debe cambiar el nombre de las constantes para reflejar Android. En tercer lugar, debe utilizar Color.makeColor
para obtener el color de valores enteros
public int getColor(int i) { switch (i%8) { case 0: return Color.BLUE; case 1: return Color.red; case 2: return Color.magenta; case 3: return Color.orange; case 4: return Color.pink; case 5: return Color.green; case 6: return Color.cyan; case 7: return Color.makeColor(250, 220, 100); } return Color.makeColor((i*80)%255,(i*80)%255,(i*80)%255)) ; }
Hola puedes seguir el código dado por @blackbelt aquí en esta respuesta
public int getColor(int i) { switch (i%8) { case 0: return Color.WHITE; case 1: return Color.RED; case 2: return Color.YELLOW; case 3: return Color.BLUE; case 4: return Color.GREEN; case 5: return Color.BLACK; } return Color.makeColor((i*80)%255,(i*80)%255,(i*80)%255)) ; }
pero como una perspectiva de la práctica y una mejor escritura de código en lugar de utilizar como arriba, por favor siga el enfoque dado.
En FILE LOCATION dado a continuación: have a colors.xml
res/values/colors.xml
El nombre de archivo es arbitrario. El nombre del elemento se utilizará como ID de recurso. REFERENCIA DE RECURSOS:
En Java: R.color.color_name
En XML: @ [package:] color / color_name
SINTAXIS:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>
ELEMENTOS:
<resources>
Necesario. Debe ser el nodo raíz. Sin atributos.
<color>
Color expresado en hexadecimal, como se ha descrito anteriormente. atributos
nombre Cadena. Un nombre para el color. Esto se utilizará como ID de recurso.
EJEMPLO:
Archivo XML guardado en res/values/colors.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
Este código de aplicación recupera el recurso de color:
Resources res = getResources(); int color = res.getColor(R.color.opaque_red);
Esta disposición XML aplica el color a un atributo:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
ejemplo completo
crear /res/values/colors.xml para agregar nuestros recursos de color en XML
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="background_color">#f0f0f0</color> <color name="text_color_red">#ff0000</color> </resources>
Modificar main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background_color" > <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
Código Java
import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView Text = (TextView)findViewById(R.id.text); Text.setTextColor(getResources().getColor(R.color.text_color_red)); } }
por favor, siga
http://developer.android.com/guide/topics/resources/more-resources.html
por ejemplo
http://android-er.blogspot.in/2010/03/using-color-in-android.html
public int getColor(int i) { switch (i%8) { case 0: return Color.BLUE; case 1: return Color.RED; case 2: return Color.MAGENTA; case 3: return Color.GRAY; case 4: return Color.YELLOW; case 5: return Color.GREEN; case 6: return Color.CYAN; case 7: return 993399; } Random rnd = new Random(); int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); return color; }
Estás usando la clase de color de Android. Esta clase sólo proporciona algunos colores predefinidos, que puede encontrar aquí en "Constantes": http://developer.android.com/reference/android/graphics/Color.html
También tienes que escribir el código sensible a mayúsculas y minúsculas. Así que debe ser Color.BLUE en lugar de Color.blue.
Si desea definir sus propios colores, debe hacerlo en un archivo xml en la carpeta res / values. Por ejemplo, cree un nuevo archivo "colors.xml". En este archivo usted pone sus colores según lo descrito aquí: http://developer.android.com/guide/topics/resources/more-resources.html#Color
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name">#ff003a</color> </resources>
A continuación, puede utilizar este color en su código Java:
Color color = getResources().getColor(R.color.color_name); return color;
Espero que esto ayude.