tipos studio sirve que para imagen herramienta hacer fondo degradado cs6 cs5 como android gradient shape

studio - Android: el uso de degradado lineal como fondo se ve anillado



herramienta degradado psd (7)

Como Romain Guy sugiere:

listView.getBackground().setDither(true);

resuelve mi problema

Si esto no es suficiente, especialmente para dispositivos AMOLED y / o hdpi, intente esto:

@Override public void onAttachedToWindow() { super.onAttachedToWindow(); Window window = getWindow(); window.setFormat(PixelFormat.RGBA_8888); }

Estoy tratando de aplicar un degradado lineal a mi ListView. Este es el contenido de mi xml dibujable:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#3A3C39" android:endColor="#181818" android:angle="270" /> <corners android:radius="0dp" /> </shape>

Así que lo aplico a mi ListView con:

android:background="@drawable/shape_background_grey"

Funciona, pero se ve muy "en bandas" en el emulador y en un dispositivo real también.

¿Hay alguna manera de reducir este "comportamiento"?


Lo único que funcionó para mí fue establecer un canal alfa ligeramente transparente tanto en el color de inicio como en el color de fin.

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FE3A3C39" android:endColor="#FE181818" android:angle="270" /> </shape>

Tengo la idea de intentar esto a partir de esta otra pregunta SO: android: dither = "true" no tiembla, ¿qué ocurre?


Para mí en HTC Desire funciona así

window.getDecorView().getBackground().setDither(true);


Para mí, la banda desapareció cuando configuré el android: useLevel = "true" en el degradado: gradient_dark.xml

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#464646" android:endColor="#323232" android:angle="270" android:type="linear" android:useLevel="true" /> </shape>

Pero primero traté de usar una lista de capas con un "ruido" dibujable para eliminar las bandas, pero todavía hay bandas.

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/gradient_dark"/> <item> <bitmap android:gravity="center" android:src="@drawable/noise_repeater" android:tileMode="repeat" /> </item> </layer-list>

El drawable "noise_repeater" que creé y usé


Pon esto en tu Actividad:

@Override public void onAttachedToWindow() { super.onAttachedToWindow(); Window window = getWindow(); window.setFormat(PixelFormat.RGBA_8888); }


Si la configuración de Dither y RGBA_888 no ayuda en algunos teléfonos, la solución puede ser establecer el elemento layerType en el software para desactivar la aceleración de hardware

android:layerType="software"

Esto solucionó mi problema en un teléfono Samsung S5.


Simplemente puede habilitar el tramado en su objeto Drawable.