2016-05-16 1 views
-1

Ce n'est pas la même question que les deux questions que j'ai posté auparavant, même application mais question différente. J'ajoute ImageButtons un à la fois à un GridLayout en utilisant RecyclerView. Mon application est à l'écoute des images entrantes et des chaînes pour marquer les boutons.Comment faire pour définir l'arrière-plan du bouton d'image à transparent dans GridLayout

J'ai besoin que l'arrière-plan des boutons soit transparent (pas le carré gris que vous voyez). Si je mets:

android:background="#00000000" 

pour mon bouton d'image vide qui est rempli à l'aide RecyclerView, il est comme un bouton transparent est placé sur le dessus de mon image et mon onClickListener pour mon bouton ne fonctionne plus. Où dois-je définir ces paramètres? Dans mon RecyclerViewAdapter?

+0

Bonjour, mais si le gris est l'arrière-plan de l'image réelle, vous devez utiliser un programme différent pour définir l'arrière-plan de l'image réelle sur transparent. Dans tous les cas, essayez de définir 'holder.AppButton.setBackgroundResource (R.color.mytransparent);' où 'R.color.mytransparent' est défini dans votre fichier Styles.xml comme' # 00000000 '. Essayez-le et faites-moi savoir si cela vous aide. – ishmaelMakitla

+0

@ishmaelMakitla Le gris n'est pas la partie réelle de l'image, c'est quelque chose qui est ajouté aux images quand il est mis dans le bouton. Mais je vais essayer ce que vous avez dit merci –

+0

OK, s'il vous plaît donnez-lui essayer et laissez-moi savoir si cela aide, sinon nous pouvons explorer d'autres solutions. – ishmaelMakitla

Répondre

1

Dans votre onBindViewHolder, vous pouvez essayer de définir la couleur de la ImageButton (holder.AppButton) à la transparence. Faites quelque chose comme ceci:

public void onBindViewHolder(RecyclerViewHolders holder, int position) { 
holder.AppName.setText(itemList.get(position).getName()); 
holder.AppButton.setImageDrawable(itemList.get(position).getPhoto()); 
//this is where you set the background to transparent... 
holder.AppButton.setBackgroundColor(Color.TRANSPARENT); 
} 

J'espère que cette aide, s'il vous plaît essayer et laissez-moi savoir si ça aide.

+0

Merci beaucoup cela a fonctionné. Je vais approuver votre réponse. Aussi j'ai posté une question similaire ici: (si vous pourriez être en mesure d'y répondre :)) merci beaucoup --- http://stackoverflow.com/questions/37259844/how-to-set-size-of-margins -in-gridlayout –