改变ImageView的按钮点击按钮、ImageView

2023-09-05 04:41:15 作者:春风不识路

想知道如果我要对这个正确的方式与否。我有我的屏幕(重新启动,previous,下)在3个按钮。当视图加载它显示了优良的第一图像。当我点击下一步按钮,我希望它加载第二个图像等多达9张图像。如果我点击了previous按钮,它应该回到一个图像。单击重新启动应该去的第一个图像。我有重新启动一个工作。我在与Next按钮麻烦,因为它只显示第二图像(我想是因为我的一个变量的初始化为0)。这是我的code。感谢任何人都可以提供帮助。

 公共类Story1扩展活动实现View.OnClickListener {

    ImageView的形象=(ImageView的)findViewById(R.id.story1_1);

    @覆盖
    保护无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.story1);

        键,重启=(按钮)findViewById(R.id.restart);
        restart.setOnClickListener(本);

        按钮previous =(按钮)findViewById(R.id. previous);
        previous.setOnClickListener(本);

        按钮旁边=(按钮)findViewById(R.id.next);
        next.setOnClickListener(本);

    }


    @覆盖
    公共无效的onClick(视图查看)
    {
        INT一个= 0;

        开关(view.getId())
        {
            案例R.id.restart:
                image.setImageResource(R.drawable.story1_1);
                打破;

            案例R.id.next:
                若(a == 0)
                {
                    image.setImageResource(R.drawable.story1_2);
                    一个= 1;
                }
                否则,如果(一个== 1)
                {
                    image.setImageResource(R.drawable.story1_3);
                    一个= 2;
                }
                否则,如果(一个== 2)
                {
                    image.setImageResource(R.drawable.story1_4);
                    一个= 3;
                }
                否则,如果(一== 3)
                {
                    image.setImageResource(R.drawable.story1_5);
                    一个= 4;
                }
                否则,如果(一个== 4)
                {
                    image.setImageResource(R.drawable.story1_6);
                    A = 5;
                }
                否则,如果(一== 5)
                {
                    image.setImageResource(R.drawable.story1_7);
                    A = 6;
                }
                否则,如果(一== 6)
                {
                    image.setImageResource(R.drawable.story1_8);
                    A = 7;
                }
                否则,如果(一== 7)
                {
                    image.setImageResource(R.drawable.story1_9);
                    image.setClickable(假);
                }
                打破;
        }

    }
}
 

解决方案

声明你的全球存储它的价值。因为你的onClick时初始化为0。

 公共类Story1扩展活动实现View.OnClickListener
{

ImageView的形象=(ImageView的)findViewById(R.id.story1_1);
按钮旁边;
INT一个= 0;

@覆盖
保护无效的onCreate(包savedInstanceState)
{
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.story1);

键,重启=(按钮)findViewById(R.id.restart);
restart.setOnClickListener(本);

按钮previous =(按钮)findViewById(R.id. previous);
previous.setOnClickListener(本);

接下来=(按钮)findViewById(R.id.next);
next.setOnClickListener(本);

}


@覆盖
公共无效的onClick(视图查看)
{

开关(view.getId())
{
    案例R.id.restart:
        image.setImageResource(R.drawable.story1_1);
        一个= 0;
        打破;

    案例R.id.next:
        若(a == 0)
        {
            image.setImageResource(R.drawable.story1_2);
            一个= 1;
        }
        否则,如果(一个== 1)
        {
            image.setImageResource(R.drawable.story1_3);
            一个= 2;
        }
        否则,如果(一个== 2)
        {
            image.setImageResource(R.drawable.story1_4);
            一个= 3;
        }
        否则,如果(一== 3)
        {
            image.setImageResource(R.drawable.story1_5);
            一个= 4;
        }
        否则,如果(一个== 4)
        {
            image.setImageResource(R.drawable.story1_6);
            A = 5;
        }
        否则,如果(一== 5)
        {
            image.setImageResource(R.drawable.story1_7);
            A = 6;
        }
        否则,如果(一== 6)
        {
            image.setImageResource(R.drawable.story1_8);
            A = 7;
        }
        否则,如果(一== 7)
        {
            image.setImageResource(R.drawable.story1_9);
            image.setClickable(假);
        }
        打破;
    案例R.id. previous:
            一个 - ;
            next.performClick();
        打破;
}

}
}
 

android点击button时imageview产生动画效果

Wondering if I'm going about this the right way or not. I have 3 buttons on my screen (Restart, Previous, Next). When the view loads it shows the first image which is fine. When I click the "Next" button I want it to load a second image and so on for up to 9 images. If I click the "Previous" button it should go back one image. Clicking "Restart" should go to the first image. I have the Restart one working. I'm having trouble with the Next button because it only shows the second image (I think because my "a" variable is initialized at 0). Here's my code. Grateful to anyone that can help.

public class Story1 extends Activity implements View.OnClickListener {

    ImageView image = (ImageView) findViewById(R.id.story1_1);

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.story1);

        Button restart = (Button) findViewById(R.id.restart);
        restart.setOnClickListener(this);

        Button previous = (Button) findViewById(R.id.previous);
        previous.setOnClickListener(this);

        Button next = (Button) findViewById(R.id.next);
        next.setOnClickListener(this);

    }


    @Override
    public void onClick(View view) 
    {
        int a = 0;

        switch (view.getId())
        {
            case R.id.restart:
                image.setImageResource(R.drawable.story1_1);
                break;

            case R.id.next:
                if (a == 0)
                {
                    image.setImageResource(R.drawable.story1_2);
                    a = 1;
                }
                else if (a == 1)
                {
                    image.setImageResource(R.drawable.story1_3);
                    a = 2;
                }
                else if (a == 2)
                {
                    image.setImageResource(R.drawable.story1_4);
                    a = 3;
                }
                else if (a == 3)
                {
                    image.setImageResource(R.drawable.story1_5);
                    a = 4;
                }
                else if (a == 4)
                {
                    image.setImageResource(R.drawable.story1_6);
                    a = 5;
                }
                else if (a == 5)
                {
                    image.setImageResource(R.drawable.story1_7);
                    a = 6;
                }
                else if (a == 6)
                {
                    image.setImageResource(R.drawable.story1_8);
                    a = 7;
                }
                else if (a == 7)
                {
                    image.setImageResource(R.drawable.story1_9);
                    image.setClickable(false);
                }
                break;  
        }

    }
}

解决方案

declare your "a" global to store its value. Because your initializing it to 0 during onClick.

public class Story1 extends Activity implements View.OnClickListener 
{

ImageView image = (ImageView) findViewById(R.id.story1_1);
Button next;
int a = 0;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.story1);

Button restart = (Button) findViewById(R.id.restart);
restart.setOnClickListener(this);

Button previous = (Button) findViewById(R.id.previous);
previous.setOnClickListener(this);

next = (Button) findViewById(R.id.next);
next.setOnClickListener(this);

}


@Override
public void onClick(View view) 
{

switch (view.getId())
{
    case R.id.restart:
        image.setImageResource(R.drawable.story1_1);
        a = 0;
        break;

    case R.id.next:
        if (a == 0)
        {
            image.setImageResource(R.drawable.story1_2);
            a = 1;
        }
        else if (a == 1)
        {
            image.setImageResource(R.drawable.story1_3);
            a = 2;
        }
        else if (a == 2)
        {
            image.setImageResource(R.drawable.story1_4);
            a = 3;
        }
        else if (a == 3)
        {
            image.setImageResource(R.drawable.story1_5);
            a = 4;
        }
        else if (a == 4)
        {
            image.setImageResource(R.drawable.story1_6);
            a = 5;
        }
        else if (a == 5)
        {
            image.setImageResource(R.drawable.story1_7);
            a = 6;
        }
        else if (a == 6)
        {
            image.setImageResource(R.drawable.story1_8);
            a = 7;
        }
        else if (a == 7)
        {
            image.setImageResource(R.drawable.story1_9);
            image.setClickable(false);
        }
        break;  
    case R.id.previous:
            a--;
            next.performClick();
        break;
}

}
}