studio gama fondos degrade colores android design background gradient shape

gama - Cómo hacer gradiente de fondo en Android



gradients android background (8)

Quiero crear un fondo degradado como en la imagen. pero no puede debido a que el centroColore se extendió para cubrir la parte inferior y superior.

¿Cómo puedo hacer un fondo como la imagen a continuación? o ¿Cómo puedo hacer un pequeño ceterColor que no se extienda? ¿Tuviste alguna idea?

Este es el fondo que quiero.

Este es el trasfondo que hice.

Este es el código en xml del botón de fondo de arriba

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="#6586F0" android:centerColor="#D6D6D6" android:endColor="#4B6CD6" android:angle="90"/> <corners android:radius="0dp"/> </shape>




Los ejemplos visuales ayudan con este tipo de preguntas.

Boilerplate

Para crear un degradado, crea un archivo xml en res / dibujable. Estoy llamando al mío my_gradient_drawable.xml :

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:type="linear" android:angle="0" android:startColor="#f6ee19" android:endColor="#115ede" /> </shape>

Lo configura en el fondo de alguna vista. Por ejemplo:

<View android:layout_width="200dp" android:layout_height="100dp" android:background="@drawable/my_gradient_drawable"/>

tipo = "lineal"

Establezca el angle para un tipo linear . Debe ser un múltiplo de 45 grados.

<gradient android:type="linear" android:angle="0" android:startColor="#f6ee19" android:endColor="#115ede" />

tipo = "radial"

Establece el gradientRadius para un tipo radial . Usar %p significa que es un porcentaje de la dimensión más pequeña del padre.

<gradient android:type="radial" android:gradientRadius="10%p" android:startColor="#f6ee19" android:endColor="#115ede" />

type = "sweep"

No sé por qué alguien usaría un barrido, pero lo incluyo para completarlo. No pude descifrar cómo cambiar el ángulo, así que solo estoy incluyendo una imagen.

<gradient android:type="sweep" android:startColor="#f6ee19" android:endColor="#115ede" />

centrar

También puede cambiar el centro de los tipos de barrido o radial. Los valores son fracciones del ancho y alto. También puedes usar la notación %p .

android:centerX="0.2" android:centerY="0.7"


O puede usar en el código lo que sea que piense en PSD:

private void FillCustomGradient(View v) { final View view = v; Drawable[] layers = new Drawable[1]; ShapeDrawable.ShaderFactory sf = new ShapeDrawable.ShaderFactory() { @Override public Shader resize(int width, int height) { LinearGradient lg = new LinearGradient( 0, 0, 0, view.getHeight(), new int[] { getResources().getColor(R.color.color1), // please input your color from resource for color-4 getResources().getColor(R.color.color2), getResources().getColor(R.color.color3), getResources().getColor(R.color.color4)}, new float[] { 0, 0.49f, 0.50f, 1 }, Shader.TileMode.CLAMP); return lg; } }; PaintDrawable p = new PaintDrawable(); p.setShape(new RectShape()); p.setShaderFactory(sf); p.setCornerRadii(new float[] { 5, 5, 5, 5, 0, 0, 0, 0 }); layers[0] = (Drawable) p; LayerDrawable composite = new LayerDrawable(layers); view.setBackgroundDrawable(composite); }


Primero necesitas crear un gradient.xml de la siguiente manera

<shape> <gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" /> <stroke android:width="1dp" android:color="#343434" /> </shape>

Luego debe mencionar el degradado anterior en el fondo del diseño. Como sigue

<?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="@drawable/gradient" > </LinearLayout>


Prueba con esto:

<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="90" android:centerColor="#555994" android:endColor="#b5b6d2" android:startColor="#555994" android:type="linear" /> <corners android:radius="0dp"/> </shape>


Puede crear este aspecto de ''medio gradiente'' utilizando una Layer-List xml para combinar las ''bandas'' superior e inferior en un archivo. Cada banda es una forma xml.

Vea esta respuesta anterior en SO para obtener un tutorial detallado: formas con múltiples gradientes .


//Color.parseColor() method allow us to convert // a hexadecimal color string to an integer value (int color) int[] colors = {Color.parseColor("#008000"),Color.parseColor("#ADFF2F")}; //create a new gradient color GradientDrawable gd = new GradientDrawable( GradientDrawable.Orientation.TOP_BOTTOM, colors); gd.setCornerRadius(0f); //apply the button background to newly created drawable gradient btn.setBackground(gd);

Consulte desde aquí https://android--code.blogspot.in/2015/01/android-button-gradient-color.html