如何在android中的一个imageview上设置两个onclicklisteners?

时间:2012-05-31 05:29:04

标签: android image

我是Android开发的新手。

我在布局中有一张图片。我使用了该图像的缩放动画。 我能够在特定点停止缩放图像。现在我想在另一个clicklistener上调整该图像的大小。

怎么做?如果有任何想法,请帮助。

这是我的代码。

final ImageView img_graph= (ImageView)findViewById(R.id.graph01);
   final Animation AnimationScale= AnimationUtils.loadAnimation(this,R.anim.anim_scale);
   final Animation AnimationScale_reverse= AnimationUtils.loadAnimation(this,R.anim.anim_scale_reverse);


        if(flag ==FLAG_SCALE_IN) { 
            if(resp==0){
   img_graph.setOnClickListener(new ImageView.OnClickListener(){

       public void onClick(View arg0) {

        // TODO Auto-generated method stub

         img_graph.setBackgroundResource(R.drawable.page01_graph);
         img_graph.startAnimation(AnimationScale);
       }});     
            }     
            }      
        if(flag==FLAG_SCALE_OUT) { 
            if(resp==1){
   img_graph.setOnClickListener(new ImageView.OnClickListener(){

       public void onClick(View arg0) {

        // TODO Auto-generated method stub

         img_graph.setBackgroundResource(R.drawable.page01_graph);
         img_graph.startAnimation(AnimationScale_reverse);
       }});
            }
            }   

2 个答案:

答案 0 :(得分:3)

我们不能在同一个列表器中使用if else来处理这种情况吗?

   img_graph.setOnClickListener(new ImageView.OnClickListener(){

       public void onClick(View arg0) {


                      if(resp==0 && flag ==FLAG_SCALE_IN) { 
                             img_graph.setBackgroundResource(R.drawable.page01_graph);
                             img_graph.startAnimation(AnimationScale);
                      }else if( resp==1 &&flag ==FLAG_SCALE_OUT) {
                           img_graph.setBackgroundResource(R.drawable.page01_graph);
                            img_graph.startAnimation(AnimationScale_reverse);
                          }
                }
       }});     

答案 1 :(得分:1)

更多优化:

public void imageViewClick(View v)
{
    if(flag==FLAG_SCALE_IN && resp==0)
        {
        }
        else if(flag==FLAG_SCALE_OUT && resp==1)
        {                     
        }
}