Как изменить рисование в ImageView на основе выбора radioButton в моем приложении для Android - PullRequest
1 голос
/ 10 февраля 2012

Я ищу способ изменить источник рисованного изображения на основе выбора переключателя.

ImageView отображает изображение 1 переключатель 1 выбран

если выбран переключатель 2 imageview отображает изображение 2

и т.д ...

любые предложения будут наиболее цениться.

Спасибо это то, что у меня есть в файле Java:

    private OnClickListener rollRightlistener = new OnClickListener() {
        public void onClick(View v) {
            roll_left.setChecked(false);
            roll_right.setChecked(true);
            ImageView i = (ImageView) findViewById(R.id.rol_off_45_mainimage);
            i.setImageResource(R.drawable.cube_rolling_45_right);
        }
    };

получение нескольких маркеров при этой ошибке строки, когда вы видите ImageView i =, а также ImageView не может быть преобразован в тип.

любые предложения будут великолепны

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

Прослушайте изменения и установите возможность рисования фона:

private OnClickListener radio_listener1 = new OnClickListener() {
    public void onClick(View v) {
        ImageView i = (ImageView) findViewById(R.id.View);
        i.setImageResource(R.drawable.image1);

    }
};

private OnClickListener radio_listener2 = new OnClickListener() {
    public void onClick(View v) {
        ImageView i = (ImageView) findViewById(R.id.View);
        i.setImageResource(R.drawable.image2);
    }
};

final RadioButton radio_red = (RadioButton) findViewById(R.id.radio_red);
final RadioButton radio_blue = (RadioButton) findViewById(R.id.radio_blue);
radio_red.setOnClickListener(radio_listener1);
radio_blue.setOnClickListener(radio_listener2); 

      <RadioGroup
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical">
      <RadioButton android:id="@+id/radio_red"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Red" />
      <RadioButton android:id="@+id/radio_blue"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Blue" />
    </RadioGroup>
0 голосов
/ 16 октября 2013

этот сайт был чрезвычайно полезен для меня, так что мне приятно возвращаться.

RE: Кевин М. (11 февраля 2012 г.) - «... что если бы у меня были переключатели x (x> 1), определяющие вид изображения»

Это работает: Если они были у вас в группе радиостанций, то в любой момент времени будет выбран только один. Итак, ваша задача найти какой.

РЕДАКТИРОВАТЬ: код отредактирован с учетом сценария трех радиогрупп в вашем последующем комментарии

public void imgchnggrps(View v)
{
    RadioButton two = (RadioButton) findViewById(R.id.two);
    RadioButton three = (RadioButton) findViewById(R.id.three);
    RadioButton first = (RadioButton) findViewById(R.id.first);

    grp1index = 0;
    if (two.isChecked()) {
        grp1index = 1
    } else if (three.isChecked()) {
    grp1index = 2;
    } else if (first.isChecked()) {
    grp1index = 3;
    } else { //you don't need this else, but for completion
        grp1index = 0;
    }

    grp2index = 0;
    if (two.isChecked()) {
        [...]
    }

    grp3index = 0;
    if (two.isChecked()) {
        [...]
    }

    imgchng(grp1index, grp2index, grp3index);
}

 public void imgchng(a, b, c)
    String img = default_image; //this is a string form of the drawable
    switch a{
         case 0:
              switch b{
                    case 0:
                          switch c{
                                case 0: img = "thisimage" // drawable resource's id

                          }
                     break;
         }
         break;
         case 1:
              (switch b and c as above)
         break; 
         case 2:
              (switch as above)
         break;    
         }

    int viewid = getResources().getIdentifier(yourimageviewid, "id", yourpackagename);
    int imgid = getResources().getIdentifier(img, "drawable", yourpackagename);
    ImageView thisview = (ImageView) findViewById(viewid);
    thisview.setImageResource(imgid);
}

Затем в файле макета назначьте этот метод событию onclick для каждой переключательной кнопки, например так: android: onClick = "imgchnggrps"

Надеюсь, это поможет.

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