¿Cómo establecer la opacidad de la forma?

86

Ya sé cómo configurar la opacidad de la imagen de fondo, pero necesito configurar la opacidad de mi objeto de forma.

En mi aplicación de Android, lo tengo así: ingrese la descripción de la imagen aquí

y quiero hacer que esta área negra sea un poco transparente, como aquí, por ejemplo, puedo ver círculos a través de este "Bienvenido ...":

ingrese la descripción de la imagen aquí

Aquí está mi código de forma:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/shape_my"">
    <stroke android:width="4dp" android:color="#636161" />
    <padding android:left="20dp"
        android:top="20dp"
        android:right="20dp"
        android:bottom="20dp" />
    <corners android:radius="24dp" />
</shape>

¿Cómo puedo hacer eso?

lomza
fuente
2
El código de objetos de forma sería de ayuda aquí.
Octavian A. Damiean

Respuestas:

201

En general, solo debes definir un color ligeramente transparente al crear la forma.

Puede lograrlo configurando el canal alfa de colores.

#FF000000obtendrá un negro sólido mientras #00000000que obtendrá un negro 100% transparente (bueno, obviamente ya no es negro).

El esquema de color es así: #AARRGGBBA significa canal alfa, R significa rojo, G para verde y B para azul.

Lo mismo se aplica si configura el color en Java. Allí solo se verá como 0xFF000000.

ACTUALIZAR

En su caso, tendría que agregar un solidnodo. Como abajo.

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/shape_my"">
    <stroke android:width="4dp" android:color="#636161" />
    <padding android:left="20dp"
        android:top="20dp"
        android:right="20dp"
        android:bottom="20dp" />
    <corners android:radius="24dp" />
    <solid android:color="#88000000" />
</shape>

El color aquí es un negro medio transparente.

Octavian A. Damiean
fuente
codeviewer.org/view/code:1974 - shape.xml. codeviewer.org/view/code:1975 - layout.xml. codeviewer.org/view/code:1976 - .java El setOpacity no funciona con shape. E intenté agregar android: background = "# 00000000" a shape.xml, pero no pasa nada.
lomza
Esto es extraño ... No importa el valor que establezca para el color, tengo mi forma completamente transparente = (
lomza
3
Me parece que la opacidad solo se puede establecer en una vista o una imagen ... Porque cuando escribo android: background = "# 88000000" en lugar de android: background = "@ drawable / shape" en mi LinearLayout, funciona .
lomza
2
También funciona en formas. ¿Has probado lo que he publicado arriba?
Octavian A. Damiean
1
Sí, pero no funciona. ¿Probaste todo este código en tu máquina?
lomza
4

use este código a continuación como progress.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ff9d9e9d"
                    android:centerColor="#ff5a5d5a"
                    android:centerY="0.75"
                    android:endColor="#ff747674"
                    android:angle="270"
            />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#00000000" />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#00000000" />
            </shape>
        </clip>
    </item>

</layer-list>

dónde:

  • "progreso" es el progreso actual antes del pulgar y "progreso secundario" es el progreso después del pulgar.
  • color = "# 00000000" es una transparencia perfecta
  • NOTA: el archivo anterior es de la resolución predeterminada de Android y es para 2.3.7, está disponible en fuentes de Android en: frameworks / base / core / res / res / drawable / progress_horizontal.xml. Para las versiones más nuevas, debe encontrar el archivo de diseño predeterminado para la barra de búsqueda correspondiente a su versión de Android.

después de eso, úselo en el diseño que contiene el xml:

<SeekBar
    android:id="@+id/myseekbar"
    ...
    android:progressDrawable="@drawable/progress"
    />

también puede personalizar el pulgar usando un icono personalizado seek_thumb.png:

android:thumb="@drawable/seek_thumb"
ungalcrys
fuente
1

Usa este, escribí esto en mi aplicación,

<?xml version="1.0" encoding="utf-8"?>
<!--  res/drawable/rounded_edittext.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="#882C383E"/>
    <corners
        android:bottomRightRadius="5dp"
        android:bottomLeftRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp"/>
</shape>
Chathura Jayanath
fuente