Quiero establecer un fondo de vista que es una cuadrícula regular de rayas verticales. Las rayas se alternan entre dos colores. (Por ejemplo, en una sola fila, puede haber 6 píxeles de gris claro seguidos por 2 píxeles de gris oscuro, que se repiten para completar el ancho.)Vertical-striped background in XML?
Es fácil hacerlo con un mapa de bits (ya sea como recurso o generado en código). Por ejemplo:
ShapeDrawable bg = new ShapeDrawable(new RectShape());
int[] pixels = new int[] { 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC,
0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFF999999, 0xFF999999};
Bitmap bm = Bitmap.createBitmap(pixels, 8, 1, Bitmap.Config.ARGB_8888);
Shader shader = new BitmapShader(bm,
Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
bg.getPaint().setShader(shader);
view.setBackgroundDrawable(bg);
¿Hay alguna manera de hacer esto estrictamente como XML drawwables, sin usar recursos de mapa de bits?
Gracias por el fragmento 'BitmapShader'. Estaba luchando para hacer esto en XML y no estaba al tanto del enfoque de sombreado. –