2011-07-03 3 views
4

Sur les widgets Android, comment puis-je donner une couleur à l'arrière-plan, tout en rendant la transparence simultanée? S'il vous plaît voir l'arrière-plan sur l'horloge à la capture d'écran. C'est un fond noir et transparent. Comment puis-je faire cela sur mon propre widget? Puis-je également faire référence aux couleurs du système, comme celle de la capture d'écran de HTC Sense? Merci pour tout indice!Fond de widget transparent?

enter image description here

Répondre

6

android:background="#TTRRGGBB - RR, GG, BB sont les (hex) composantes rouge, vert, bleu, et TT est le composant de la transparence. Utilisez TT = 80 (hex) pour une transparence de 50%, FF pour aucune transparence, 00 pour une transparence totale.

Ou utilisez un png avec des composants transparents, comme votre capture d'écran semble utiliser.

10

Vous devez spécifier un canal alpha (= canal de transparence) pour vos ressources.

Si vous utilisez une couleur standard dans votre fichier XML res (par exemple, à partir de votre fichier colors.xml) pour remplir l'arrière-plan, vous pouvez spécifier alpha en modifiant les deux premiers chiffres. format Exemple:

<color name="transparent_red">#99FF0000</color> 

Le 99 ici indique la valeur alpha, changer à FF produira rouge solide, changeant à 00 va rendre invisible toute la couleur. Juste tester avec cela en changeant la valeur entre.

Pour les détails à ce sujet, veuillez regarder here.

Si vous souhaitez utiliser une image réelle/un bitmap, comme le fait le sens, vous devez créer des images PNG avec un canal alpha spécifié. Cela dépend du logiciel que vous utilisez pour créer vos bitmaps. J'ai recommandé des programmes graphiques vectoriels comme Illustrator ou Inkscape pour ce faire, ils ont une valeur alpha lorsque vous spécifiez une couleur. Après l'avoir créé, exportez l'image au format PNG et ajoutez-la aux ressources de votre application.

7
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="@android:color/transparent"> 

    <ImageView 
     android:id="@+id/widget_image" 
     android:layout_width="110sp" 
     android:layout_height="110sp" 
     android:layout_gravity="center" 
     android:src="@drawable/appicon" /> 
</LinearLayout> 

Définissez simplement l'arrière-plan de la mise en page sur transparent. Ajouter le code ci-dessous. Cela a fonctionné pour moi et c'est un widget.

android:background="@android:color/transparent"