www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 17b68d693e6109866ad11baccdf9c9a9efd47ec7
parent 60ec94c76c51b314a52aef8b12a29f67751e13c7
Author: Bertrand BRUN <bertrand0brun@gmail.com>
Date:   Fri,  4 Feb 2011 16:30:45 +0100

Ajout de la fonction aide dans BaseGame

Diffstat:
Mcode/PtiClic/src/org/pticlic/games/BaseGame.java | 219+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 193 insertions(+), 26 deletions(-)

diff --git a/code/PtiClic/src/org/pticlic/games/BaseGame.java b/code/PtiClic/src/org/pticlic/games/BaseGame.java @@ -15,14 +15,15 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.Display; +import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AlphaAnimation; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationSet; import android.view.animation.TranslateAnimation; import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; /** @@ -40,13 +41,14 @@ import android.widget.TextView; * */ -public class BaseGame extends Activity implements OnClickListener, AnimationListener { +public class BaseGame extends Activity implements OnClickListener { private int currentWord = 0; private TextView currentWordTextView; private int nbWord = 0; private DownloadedGame game; private Match match; private Network network; + private boolean help = false; /** Called when the activity is first created. */ @Override @@ -77,6 +79,23 @@ public class BaseGame extends Activity implements OnClickListener, AnimationList ImageView r3 = ((ImageView)findViewById(R.id.relation3)); ImageView r4 = ((ImageView)findViewById(R.id.relation4)); + + // Layout des relations + TextView rn1 = ((TextView)findViewById(R.id.relation1Name)); + TextView rn2 = ((TextView)findViewById(R.id.relation2Name)); + TextView rn3 = ((TextView)findViewById(R.id.relation3Name)); + TextView rn4 = ((TextView)findViewById(R.id.relation4Name)); + + // Layout des relations + LinearLayout rl1 = ((LinearLayout)findViewById(R.id.relation1Layout)); + LinearLayout rl2 = ((LinearLayout)findViewById(R.id.relation2Layout)); + LinearLayout rl3 = ((LinearLayout)findViewById(R.id.relation3Layout)); + LinearLayout rl4 = ((LinearLayout)findViewById(R.id.relation4Layout)); + + // Bouton d'aide + ImageView aide = ((ImageView)findViewById(R.id.aideBaseGame)); + aide.setOnClickListener(this); + Relation r = Relation.getInstance(); // TODO : Pour l'instant la poubelle ne fait rien. Il faudra certainement la ranger dans un categorie dans GamePlayed pour calculer le score. @@ -85,12 +104,38 @@ public class BaseGame extends Activity implements OnClickListener, AnimationList trash.setImageResource(android.R.drawable.ic_menu_delete); // Écoute des clics sur les relations - if (nbrel > 0) { r1.setOnClickListener(this); r1.setImageResource(r.getRelationImage(game.getCat1())); } else { r1.setVisibility(View.GONE); } - if (nbrel > 1) { r2.setOnClickListener(this); r2.setImageResource(r.getRelationImage(game.getCat2()));} else { r2.setVisibility(View.GONE); } - if (nbrel > 2) { r3.setOnClickListener(this); r3.setImageResource(r.getRelationImage(game.getCat3()));} else { r3.setVisibility(View.GONE); } - if (nbrel > 3) { r4.setOnClickListener(this); r4.setImageResource(r.getRelationImage(game.getCat4()));} else { r4.setVisibility(View.GONE); } + if (nbrel > 0) { + r1.setOnClickListener(this); + r1.setImageResource(r.getRelationImage(game.getCat1())); + rn1.setText(r.getRelationName(game.getCat1())); + } else { + rl1.setVisibility(View.GONE); + } + if (nbrel > 1) { + r2.setOnClickListener(this); + r2.setImageResource(r.getRelationImage(game.getCat2())); + rn2.setText(r.getRelationName(game.getCat2())); + } else { + rl2.setVisibility(View.GONE); + } + if (nbrel > 2) { + r3.setOnClickListener(this); + r3.setImageResource(r.getRelationImage(game.getCat3())); + rn3.setText(r.getRelationName(game.getCat3())); + } else { + rl3.setVisibility(View.GONE); + } + if (nbrel > 3) { + r4.setOnClickListener(this); + r4.setImageResource(r.getRelationImage(game.getCat4())); + rn4.setText(r.getRelationName(game.getCat4())); + } else { + rl4.setVisibility(View.GONE); + } ((TextView)findViewById(R.id.mainWord)).setText(DownloadedGame.getName(game.getCentre())); + + //this.helpMode(); } /* (non-Javadoc) @@ -128,9 +173,12 @@ public class BaseGame extends Activity implements OnClickListener, AnimationList AnimationSet set = new AnimationSet(true); set.setDuration(1000); set.setFillAfter(true); - set.setAnimationListener(this); - TranslateAnimation translate = new TranslateAnimation(mainWord.getScrollX() / 2, mainWord.getScrollX() / 2, mainWord.getScrollY() / 2, width / 2); + TranslateAnimation translate; + if (isInHelpMode()) + translate = new TranslateAnimation(mainWord.getScrollX() / 2, mainWord.getScrollX() / 2, mainWord.getScrollY() / 2, width / 4); + else + translate = new TranslateAnimation(mainWord.getScrollX() / 2, mainWord.getScrollX() / 2, mainWord.getScrollY() / 2, width / 2); translate.setDuration(500); set.addAnimation(translate); @@ -173,6 +221,141 @@ public class BaseGame extends Activity implements OnClickListener, AnimationList } } + /** + * Cette methode est appeler lorsque l'utilisateur appuie sur le bouton d'aide. + * Elle change la disposition des elements de maniere a afficher la description + * de l'icone a cote de l'icone. + */ + private void helpMode() { + if (!isInHelpMode()) { + help = true; + + LayoutParams layoutParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 2); + + // On modifie l'affichage du layout + LinearLayout menuLayout = ((LinearLayout)findViewById(R.id.menuLayout)); + menuLayout.setOrientation(LinearLayout.VERTICAL); + menuLayout.setLayoutParams(layoutParams); + + // Puis on modifie l'affichage des relations + //relation1 + LinearLayout relationLayout = ((LinearLayout)findViewById(R.id.relation1Layout)); + relationLayout.setGravity(Gravity.LEFT); + + TextView relationName = ((TextView)findViewById(R.id.relation1Name)); + relationName.setVisibility(View.VISIBLE); + + //relation2 + relationLayout = ((LinearLayout)findViewById(R.id.relation2Layout)); + relationLayout.setGravity(Gravity.LEFT); + + relationName = ((TextView)findViewById(R.id.relation2Name)); + relationName.setVisibility(View.VISIBLE); + + //relation3 + relationLayout = ((LinearLayout)findViewById(R.id.relation3Layout)); + relationLayout.setGravity(Gravity.LEFT); + + relationName = ((TextView)findViewById(R.id.relation3Name)); + relationName.setVisibility(View.VISIBLE); + + //relation4 + relationLayout = ((LinearLayout)findViewById(R.id.relation4Layout)); + relationLayout.setGravity(Gravity.LEFT); + + relationName = ((TextView)findViewById(R.id.relation4Name)); + relationName.setVisibility(View.VISIBLE); + + //trash + relationLayout = ((LinearLayout)findViewById(R.id.trashLayout)); + relationLayout.setGravity(Gravity.LEFT); + + relationName = ((TextView)findViewById(R.id.trashName)); + relationName.setVisibility(View.VISIBLE); + + + // On met le mot courant au bon endroit dans la fenetre + // On recupere la largueur de l'ecran. + Display display = getWindowManager().getDefaultDisplay(); + int width = display.getWidth(); + + //On recupere le centre de mainWord pour l'animation de translation. + TextView mainWord = (TextView)findViewById(R.id.mainWord); + currentWordTextView = (TextView)findViewById(R.id.currentWord); + + TranslateAnimation translate = new TranslateAnimation(mainWord.getScrollX() / 2, mainWord.getScrollX() / 2, mainWord.getScrollY() / 2, width / 4); + translate.setDuration(0); + translate.setFillAfter(true); + + currentWordTextView.setAnimation(translate); + + } else { + help = false; + + LayoutParams layoutParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 10); + + // On modifie l'affichage du layout + LinearLayout menuLayout = ((LinearLayout)findViewById(R.id.menuLayout)); + menuLayout.setOrientation(LinearLayout.HORIZONTAL); + menuLayout.setLayoutParams(layoutParams); + + // Puis on modifie l'affichage des relations + //relation1 + LinearLayout relationLayout = ((LinearLayout)findViewById(R.id.relation1Layout)); + relationLayout.setGravity(Gravity.CENTER); + + TextView relationName = ((TextView)findViewById(R.id.relation1Name)); + relationName.setVisibility(View.GONE); + + //relation2 + relationLayout = ((LinearLayout)findViewById(R.id.relation2Layout)); + relationLayout.setGravity(Gravity.CENTER); + + relationName = ((TextView)findViewById(R.id.relation2Name)); + relationName.setVisibility(View.GONE); + + //relation3 + relationLayout = ((LinearLayout)findViewById(R.id.relation3Layout)); + relationLayout.setGravity(Gravity.CENTER); + + relationName = ((TextView)findViewById(R.id.relation3Name)); + relationName.setVisibility(View.GONE); + + //relation4 + relationLayout = ((LinearLayout)findViewById(R.id.relation4Layout)); + relationLayout.setGravity(Gravity.CENTER); + + relationName = ((TextView)findViewById(R.id.relation4Name)); + relationName.setVisibility(View.GONE); + + //trash + relationLayout = ((LinearLayout)findViewById(R.id.trashLayout)); + relationLayout.setGravity(Gravity.CENTER); + + relationName = ((TextView)findViewById(R.id.trashName)); + relationName.setVisibility(View.GONE); + + // On met le mot courant au bon endroit dans la fenetre + // On recupere la largueur de l'ecran. + Display display = getWindowManager().getDefaultDisplay(); + int width = display.getWidth(); + + //On recupere le centre de mainWord pour l'animation de translation. + TextView mainWord = (TextView)findViewById(R.id.mainWord); + currentWordTextView = (TextView)findViewById(R.id.currentWord); + + TranslateAnimation translate = new TranslateAnimation(mainWord.getScrollX() / 2, mainWord.getScrollX() / 2, mainWord.getScrollY() / 2, width / 2); + translate.setDuration(0); + translate.setFillAfter(true); + + currentWordTextView.setAnimation(translate); + } + } + + private boolean isInHelpMode() { + return help; + } + /* (non-Javadoc) * @see android.view.View.OnClickListener#onClick(android.view.View) */ @@ -185,23 +368,7 @@ public class BaseGame extends Activity implements OnClickListener, AnimationList case (R.id.relation3) : match.add(3, currentWord); next(); break; case (R.id.relation4) : match.add(4, currentWord); next(); break; case (R.id.trash) : match.add(0, currentWord); next(); break; + case (R.id.aideBaseGame) : helpMode(); break; } } - - @Override - public void onAnimationEnd(Animation animation) { - - } - - @Override - public void onAnimationRepeat(Animation animation) { - // TODO Auto-generated method stub - - } - - @Override - public void onAnimationStart(Animation animation) { - // TODO Auto-generated method stub - - } } \ No newline at end of file