Cómo creo un fondo con las rayas que usan formas, no imagen

Me preguntaba cómo puedo crear un fondo con las líneas de diversos colores sin realmente agregar una imagen de fondo. Quería resolverlo usando cualquier forma o algún código en java.

¡Muchas gracias! Introduzca aquí la descripción de la imagen

3 Solutions collect form web for “Cómo creo un fondo con las rayas que usan formas, no imagen”

Este es mi parche 9 (lo llamé /res/drawable/stripes_vert_4.9.png ):

Introduzca aquí la descripción de la imagen <= MIRAR! ¡Esta aquí! Tiene 14 * 5 px de tamaño, incluyendo las fronteras. Peso: 205 bytes

Este es el resultado cuando se establece como fondo:

Introduzca aquí la descripción de la imagen

Ahora un gradiente semi-opaco (lo llamé /res/drawable/bg_stripes_vert_gradient ):

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="#0000" android:endColor="#8000" android:gradientRadius="180" android:type="linear" android:angle="-90" /> </shape> 

Juega con el principio | center | endColor para obtener el mejor equilibrio.
Ahora, el diseño:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/stripes_vert_4" > <View android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg_stripes_vert_gradient" /> </RelativeLayout> 

Y el resultado final:

Introduzca aquí la descripción de la imagen

Puede utilizar vistas dummy en su archivo de diseño. Las vistas ficticias son simples objetos de "vista" en un archivo de diseño xml. Puede configurar el ancho, altura, fondo, relleno, … en estas vistas. Son especialmente útiles cuando se crean divisores horizontales / verticales o franjas en android. En lugar de color para el fondo de estas vistas, puede definir un degradado como un archivo xml en su carpeta dibujable:

Aquí he utilizado un diseño lineal para poner 4 de estas vistas en orientación vertical, mientras que cada una de ellas ocupa el 25% del ancho de pantalla de bienes raíces, en cualquier tamaño de pantalla.

  <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:weightSum="1"> <View android:id="@+id/stripe_one" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.25" android:background="@color/red" /> <View android:id="@+id/stripe_two" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.25" android:background="@color/orange" /> <View android:id="@+id/stripe_three" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.25" android:background="@color/velvet" /> <View android:id="@+id/stripe_four" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.25" android:background="@color/green" /> <LinearLayout /> 

Ya hay buenas respuestas aquí. Este método está destinado a demostrar que no es demasiado difícil de resolver este tipo de problemas con una vista personalizada, si usted sabe algunos trucos. Los detalles se pueden encontrar en este artículo:

https://developer.android.com/guide/topics/graphics/2d-graphics.html

Aquí está el código:

 package com.example; import android.content.Context; import android.graphics.*; import android.util.AttributeSet; import android.view.View; public class CustomView extends View { Bitmap bitmap; Paint paint; Rect dst; public CustomView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CustomView(Context context) { super(context); init(); } void init() { paint = new Paint(); paint.setStyle(Paint.Style.FILL_AND_STROKE); bitmap = Bitmap.createBitmap(4, 1, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bitmap); paint.setColor(Color.parseColor("#c43134")); c.drawRect(0, 0, 1, 1, paint); paint.setColor(Color.parseColor("#b3632e")); c.drawRect(1, 0, 2, 1, paint); paint.setColor(Color.parseColor("#ab2463")); c.drawRect(2, 0, 3, 1, paint); paint.setColor(Color.parseColor("#8e9e34")); c.drawRect(3, 0, 4, 1, paint); } protected void onDraw(Canvas canvas) { canvas.drawBitmap(bitmap, (Rect) null, dst, paint); } protected void onSizeChanged(int x, int y, int ox, int oy) { dst = new Rect(0, 0, x, y); } } 

La idea es usar comandos de dibujo 2d básicos para dibujar una forma simple en un mapa de bits pequeño que se ampliará automáticamente para ajustarse a las dimensiones de la vista cuando se dibuja.

La llamada onDraw() método onDraw() es rápida, de acuerdo con el artículo vinculado, por lo que este método es compatible con pantallas dinámicas o animadas.

Editar: una captura de pantalla:

La vista personalizada en un diseño simple

Edit: No señalé cómo incluir la vista personalizada en un diseño. Aquí hay un ejemplo básico.

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.example.CustomView android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.