Android ImageView - PullRequest
       28

Android ImageView

0 голосов
/ 25 января 2012

Я бы хотел сделать такую ​​вещь .... Есть относительная компоновка с splash.PNG в качестве фона .... Есть пять ImageViews: @drawable \ 1.png, @drawable \ 2.png,@drawable \ 3.png, @drawable \ 4.png и @drawable \ 5.png ...

1 - кликабельны и видимы;2-5 - невидимы и кликабельны = "ложь"

, нажав один раз, когда Imageview 2 станет видимым, но не кликабельным, а затем, нажав все 2-5, появится, затем, нажав последний пятый раз, 2-5 снова станет невидимым....

Что касается меня, такая конструкция работает с одним невидимым ImageView:

    final ImageView iv36 = (ImageView) findViewById(R.id.yabl3skr);
    iv36.setOnClickListener( new OnClickListener() {

        @Override
        public void onClick(View v33) {
            // TODO Auto-generated method stub

            final ImageView iv37 = (ImageView)findViewById(R.id.yab3);
            iv37.setVisibility(1);
            iv37.setClickable(true);
            iv37.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v33) {
                    // TODO Auto-generated method stub
            iv37.setVisibility(View.GONE);
            iv37.setClickable(false);
                }
            });
        }
    }); 

Нужны какие-нибудь идеи, как сделать это хорошо с пятью изображениями?

1 Ответ

2 голосов
/ 25 января 2012

Я не знаю, понял ли я это полностью, но я думаю, что вы говорите, что у вас есть пять ImageViews, которые все выполняют условную логику при нажатии.Если это так, то я обычно делаю один OnClickListener для всех изображений.Вы можете установить начальное состояние на всех ваших изображениях, а затем переключить идентификатор передаваемого представления, чтобы включить и показать, какие просмотры вы хотите показать.

    final ImageView iv33 = (ImageView) findViewById(R.id.iv33);
    final ImageView iv34 = (ImageView) findViewById(R.id.iv34);
    final ImageView iv35 = (ImageView) findViewById(R.id.iv35);
    final ImageView iv36 = (ImageView) findViewById(R.id.iv36);
    final ImageView iv37 = (ImageView) findViewById(R.id.iv37);

    OnClickListener imageClickListener = new OnClickListener() {

        public void onClick(View v) {

            // Initial state
            iv33.setClickable(false);
            iv34.setClickable(false);
            iv35.setClickable(false);
            iv36.setClickable(false);
            iv37.setClickable(false);

            iv33.setVisibility(View.GONE);
            iv34.setVisibility(View.GONE);
            iv35.setVisibility(View.GONE);
            iv36.setVisibility(View.GONE);
            iv37.setVisibility(View.GONE);

            switch(v.getId())
            {
            case R.id.iv33:
                // show and hide what you would like...
                break;
            case R.id.iv34:
                // show and hide what you would like...
                break;
            case R.id.iv35:
                // show and hide what you would like...
                break;
            case R.id.iv36:
                // show and hide what you would like...
                break;
            case R.id.iv37:
                // show and hide what you would like...
                break;
            }
        }
    };

    iv33.setOnClickListener(imageClickListener);
    iv34.setOnClickListener(imageClickListener);
    iv35.setOnClickListener(imageClickListener);
    iv36.setOnClickListener(imageClickListener);
    iv37.setOnClickListener(imageClickListener);
...