Хотите, чтобы случайный просмотр изображений был как неуправляемый - PullRequest
0 голосов
/ 23 февраля 2012

Я делаю маленькую игру с пузырями, где на экране будет много пузырей (Imageview).Теперь на levelScreen уже будет размещено 15 пузырьков ... Будет три уровня ... Скажем, первый уровень с его bg и 15 объектами в одном макете level.xml Это мой xml для level1

    <RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/gmw_01"
 android:onClick="onClick"
 android:layout_height="wrap_content" 
android:layout_width="wrap_content"
 android:id="@+id/relativeLayout1" >
 <ImageView 
android:onClick="objectClick" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/imageView1"
 android:src="@drawable/bb01" 
android:layout_marginLeft="998dp" 
android:layout_marginTop="593dp" 
android:layout_alignParentTop="true"
 android:layout_alignParentLeft="true"/>
 <ImageView 
android:onClick="objectClick"
 android:layout_height="wrap_content" 
android:layout_width="wrap_content"
 android:id="@+id/imageView2"
 android:src="@drawable/bb02"
 android:layout_marginLeft="20dp" 
android:layout_marginTop="39dp" 
android:layout_alignParentTop="true"
 android:layout_alignParentLeft="true"/>
 <ImageView
 android:onClick="objectClick"
 android:layout_height="wrap_content" 
android:layout_width="wrap_content"
 android:id="@+id/imageView3"
 android:src="@drawable/bb03" 
android:layout_marginLeft="497dp" 
android:layout_marginTop="153dp"
 android:layout_alignParentTop="true" 
android:layout_alignParentLeft="true"/>

как этот 15 ImageView, который содержит 15 пузырьков в макете выше ....

Теперь у меня есть один экран, где выбран уровень, и в зависимости я помещаю level1 в этот gamplayScreen.xml, т.е. я раздуваю его вgamePlayScreen с дисплеем Headup слева и экраном этого уровня, который будет постоянно меняться ....

Прежде чем накачать свой уровень на gamePlayScreen .... Я хочу выбрать случайные 8 пузырьков, которые можно нажимать толькопользователем.На каждом уровне будет отображаться 15 пузырьков, но я хочу выбрать случайные 8 на каждом уровне в зависимости от соответствующих пузырьков на этом уровне ... вот gamePlayActivity

 public class GamePlayActivity extends Activity {

    static int ObjectsFound;


     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gameplay);


            // ViewGroup where n number of view is going to added
            ViewGroup layout= (ViewGroup) findViewById(R.id.GamePlayScreen);

            // inflating the layout depending on the level 
            View level = View.inflate(this, LevelSelectionActivity.levelscreen, null);
    // adding level bg for the respective selected level
            layout.addView(level);
}   

 public void objectClick(View objectClicked)
     {
         Toast msg;
         int Object = objectClicked.getId();
         ImageView img= (ImageView)findViewById(objectClicked.getId());
        switch (Object) {
        case R.id.imageView1:   
             img.setVisibility(View.INVISIBLE);
             msg = Toast.makeText(GamePlayActivity.this, "Bubble Found", Toast.LENGTH_SHORT);
             msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);
             msg.show();

            break;

        }
}

Теперь, как выполнить эти случайные 8 объектовиз 15 объектов, которые у меня есть в ImageView, я хочу установить их как nonclickable?Я надеюсь, что объяснил, где я слишком смущен ...

1 Ответ

1 голос
/ 23 февраля 2012

Псевдокод, не проверял это, но должен работать для вас:

private int[] ids = {
   R.id.imageView1,
   R.id.imageView2,
   R.id.imageView3,
   R.id.imageView4,
   ...
}


public void randomize() {
   Random generator = new Random();
   for(int i = 0; i<8 ; i++) {
       while(true) {
           View v = findViewById(generator.nextInt(ids.length));
           if(!v.isClickable()) {
                v.setClickable(false);
                break;
           }
       }
   }
}

В основном мы выбираем 8 случайных видов и устанавливаем их как не реагирующие на клики. Если мы добавляем представление, которое уже было сделано не кликабельным (потому что мы сделали это на предыдущем шаге), мы повторяем. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...