Comment est-ce que je peux faire ceci? Il y a un setAlpha mais pas getAlpha.Obtenez l'alpha d'un ImageView
Répondre
Il n'y a pas de moyen facile de le faire. En effet, un ImageView
peut avoir été défini avec un Bitmap
, un StateListDrawable
, un ColorDrawable
ou autre chose entièrement. Une seule de ces classes a une seule couleur; sur n'importe quel autre dessin, l'alpha peut être différent pour chaque pixel (les pixels sont au format ARGB, w/1 octet chacun pour alpha, rouge, vert et bleu). Je suis assez sûr que la méthode setAlpha()
ne fonctionne que sur les drawables qui le supportent, comme mentionné par Sephy ci-dessus.
Que devez-vous exactement savoir sur la transparence de l'image? Si vous savez ce que l'ImageView sera rempli à l'avance, alors peut-être vous pouvez extraire l'alpha à l'avance. Si vous n'avez pas d'accès direct à l'alpha, mais que vous êtes en mesure de déterminer la couleur, l'alpha sera égal à color >>> 24
.
En fait, vous devez utiliser getOpacity()
parce que l'alpha n'existe que pour ColorDrawable
, Transformation
et quelques autres. et vous devez l'utiliser sur le drawable du ImageView
pas la vue elle-même.
Cool, merci pour la pointe. – Joren
Hmm. getDrawable() est null si je définis le src ImageView via XML au lieu de setImageResource lors de l'exécution. Des idées? – Joren
Woops, je mettais en arrière-plan au lieu de src. getOpacity ne fait rien d'utile, il renvoie juste l'une des 4 constantes, j'ai besoin de quelque chose qui renvoie la valeur de transparence réelle. – Joren
Au cas où quelqu'un juste besoin d'obtenir et définir une visibilité des commandes, getVisibility et setVisibility peut être une alternative, vous pouvez utiliser:
if(vw.getVisibility() == View.VISIBLE)
{
// do something
}
et vous pouvez définir la visibilité:
vw.setVisibility(View.INVISIBLE);
Ici ya allez
Vous pouvez utiliser ceci avec une instruction if pour obtenir une valeur booléenne et vérifier l'état alpha actuel d'une vue.
Vous ne pouvez pas directement. Vous pouvez contourner le problème, à condition que vous définissiez l'alpha par programmation, c'est de conserver la valeur alpha lorsque vous l'avez définie. E.g .:
private int mCurrentAlpha;
private void setAlpha(int newAlpha){
mCurrentAlpha=newAlpha;
ImageView imageView=...
imageView.setAlpha(mCurrentAlpha);
}
- 1. Imageview ontop d'un autre imageview
- 2. ImageView trouble
- 3. J'ai utilisé [scrollView addSubView: imageView] mais imageView n'apparaît pas
- 4. ImageView change frame/bounds
- 5. alignement vertical ImageView - UITableViewCell
- 6. Imageview - un petit problème
- 7. Android Ajouter dynamiquement ImageView
- 8. de forme dans imageview
- 9. imageview web imageresource
- 10. Android ImageView NullPointerException
- 11. Android, Imageview, quelques questions
- 12. Tableau de ImageView
- 13. Redimensionner imageview sur onDoubleTapEvent
- 14. Création de ImageView personnalisée
- 15. ImageView objet toujours nul
- 16. Set Image sur imageview
- 17. android, imageview stretch
- 18. Android ImageView dessiner
- 19. Agrandir l'image dans ImageView
- 20. Espace vide après ImageView
- 21. iphone imageview séquence animation
- 22. Android ImageView superpositions cliquables
- 23. Zoomer un ImageView
- 24. ImageView animation help
- 25. Android: Étirer ImageView avec le fond
- 26. ImageView aligné avec d'autres vues
- 27. android Imageview layoutparams en immersion?
- 28. couleur de remplissage sur imageview
- 29. AssetsLibrary et ImageView -setImage Slowness
- 30. Animer l'insertion imageView de UITableViewCell?
J'anime certains ImageViews en utilisant un AlphaAnimation et je veux vérifier si leur alpha est 1 pour déterminer si je devrais exécuter mon animation fadeIn sur eux. – Joren
Est-ce juste pour connaître la différence entre les vues déjà animées et celles qui ne l'étaient pas? Vous devriez probablement trouver une autre façon de calculer cela, par exemple si 'imgView.getAnimation()! = FadeIn' alors vous supposez que l'animation n'a pas encore été appliquée. Alternativement, vous pourriez sous-classer 'ImageView' et remplacer la méthode' onSetAlpha() '; C'est la méthode qui sera appelée quand l'alpha change en raison de l'animation. –