单击按钮可应用多种功能

时间:2014-08-09 15:42:27

标签: java android android-button

我正在尝试在按钮上应用一个功能,当我第一次按下时,Function1在imageView2中显示图像,当我们再次按下它时(第二次),然后Function2显示其他图像(替换在imageView2中的Function1)的图像,为此我尝试下面的逻辑,但它只适用于(count == 1)。

private int count = 0;        
Button button= (Button) findViewById(R.id.NextButton);
button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v)  {
        if (count==1)
        {
                grayimg(bmInImg.getHeight(),bmInImg.getWidth(), mPhotoIntArray, mCannyOutArray); 
                Bitmap bmOutImg = Bitmap.createBitmap(bmInImg.getWidth(), bmInImg.getHeight(), Config.ARGB_8888);  
                bmOutImg.setPixels(mCannyOutArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight());
                imageview_2.setImageBitmap(bmOutImg);
        }
        else if(count==2)
        {
               grayimg_2(bmInImg.getHeight(),bmInImg.getWidth(), mPhotoIntArray, mCannyOutArray); 
                Bitmap bmOutImg = Bitmap.createBitmap(bmInImg.getWidth(), bmInImg.getHeight(), Config.ARGB_8888);  
                bmOutImg.setPixels(mCannyOutArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight());
                imageview_2.setImageBitmap(bmOutImg);
        }
        else if(count==3)
        {
               grayimg_3(bmInImg.getHeight(),bmInImg.getWidth(), mPhotoIntArray, mCannyOutArray); 
                Bitmap bmOutImg = Bitmap.createBitmap(bmInImg.getWidth(), bmInImg.getHeight(), Config.ARGB_8888);  
                bmOutImg.setPixels(mCannyOutArray, 0, bmInImg.getWidth(), 0, 0, bmInImg.getWidth(), bmInImg.getHeight());
                imageview_2.setImageBitmap(bmOutImg);
        }
        count++;            
    }
});

3 个答案:

答案 0 :(得分:0)

做这样的事情 -

    Button button= (Button) findViewById(R.id.NextButton);
    button.setOnClickListener(new OnClickListener() {

        @Override
    public void onClick(View v)  {

         if (imageView1.getVisibility() == View.VISIBLE) {
             imageView1..setVisibility(View.INVISIBLE);
             imageView2..setVisibility(View.VISIBLE);
          }
         else
         {
             imageView1..setVisibility(View.VISIBLE);
             imageView2..setVisibility(View.INVISIBLE);
         }         

        }
        });

答案 1 :(得分:0)

设置以下

private int count = 1;    

第一次按下按钮count = 0并且不输入if if或else if block并且递增到count = 1然后如果执行了block则再次按下。

如果您想要交替效果,请执行以下操作

private boolean chk = true;        
Button button= (Button) findViewById(R.id.NextButton);
button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v)  {
       if (chk)
       {
          // Function1
       }
       else 
       {
          // Function2
       }
       chk = !chk;          

    }
});

答案 2 :(得分:0)

这将有效

private int count = 0;        
Button button= (Button) findViewById(R.id.NextButton);
button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v)  {
        if ((count%2) == 0)
        {
            // Function2
        }
        else
        {
           // Function1
        }
        count++;          

    }
    });

如果是偶数,则计数%2计算为零,否则计数为奇数。现在你可以相应地调用函数了......