IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Simuler un filtre de couleur


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut Simuler un filtre de couleur
    Bonjour,

    Je suis en train de développer un petit jeu et j'aimerais pouvoir ajouter un "filtre" de couleur.

    Autrement dit, j'aimerais faire en sorte que toute la zone de dessin (SurfaceView) devienne rouge, mais en gardant une transparence pour pouvoir continuer à jouer.

    Plus simplement, l'idée et de simuler une blessure du à une explosion.
    J'ai trouvé comment re-coloriser une image pixel par pixel... mais je ne pense pas que se soit la bonne solution.

    Quelle est la meilleure façon de créer cet effet ?

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    tu pourrai peut etre utiliser un layout mi-transparent teinte couleur de ton choix, et dès que le personnage est blessé, le layout apparait en animation de fondu

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour, as-tu essayé la fonction setColorFilter ? Pour la transparence il suffit de setter à ta view un alpha inférieur à 1.

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Bonjour,
    merci pour vos réponse.
    J'ai essayé de faire la solution avec setColorFilter, mais j'ai un beau message d'erreur ("java.lang.NullPointerException")

    Voila le code que j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void filtre() {
    maVue.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY);
    }
    Je me suis planté quelque part ?

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Oups, en fait j'avais pas mis de background dans mon xml, du coup le "getBackground" n'était pas bon.
    Par contre j'ai pas trop compris le truc de l'alpha pour la transparence ?

    [Edit] En fait c'est pas top de faire maVue.getBackground.setColorFilter, puisque ça mais le filtre en background, du coup, et du coup il n’apparaît que dans les zone non dessiné

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Problème semi résolu.
    En fait en passant l'appli sur mon téléphone, le résultat ne ressemblait pas du tout à l'émulateur.
    Mais bon pour finir, j'ai créer une activité transparente qui prend un LinearLayout, avec un background rouge, et j'ai mis l'alpha à 50.
    Du coup j'ai mis une animation en ouverture et fermeture, c'est nickel.

    Le seul problème, c'est que le lancement de l'activité mais en pause l'activité principal, du coup j'ai mon "filtre", mais le jeu s'arrête.
    Existe il une manière de lancer une activité sans stopper les autres ?

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Et voila, problème entièremenent résolu.
    Pour finir, j'ai simplement mis une ImageView dans l'activité ou je voulais mettre le filtre, (une simple image rouge qui prend tous l'écran).
    Du coup lorsque je veut mettre mon effet, je rend l'image visible ,et modifie l'alpha :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public void filtre() {
     
    		final ImageView filtre=(ImageView)findViewById(R.id.champfiltre);
    		filtre.setImageDrawable(getResources().getDrawable(R.drawable.fondchamp));
    		filtre.setAlpha(50);
    		filtre.setVisibility(View.VISIBLE);
     
    		mHandler = new Handler();
     
    		mHandler.postDelayed(new Runnable()
    		{
    			@Override
    			public void run() {
    				filtre.setVisibility(View.INVISIBLE);
    			}
    		}, 7000);
    	}

    Encore merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. FILTRE DE COULEUR
    Par saralix dans le forum Windows XP
    Réponses: 3
    Dernier message: 25/05/2009, 11h48
  2. filtre avec couleur
    Par likinter dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/03/2009, 08h58
  3. placer un filtre de couleur sur une image
    Par mm2405 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 06/12/2007, 11h25
  4. Filtres de couleur
    Par HalfMoon dans le forum SDL
    Réponses: 2
    Dernier message: 15/07/2007, 14h42
  5. Application de filtre de couleur sur une page web
    Par kalan dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 21/06/2006, 18h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo