为动态生成的ImageView设置OnTouchListeners

时间:2012-03-12 09:07:46

标签: android android-layout android-imageview android-view

我将OnTouchListener设置为ImageView,然后在ImageView上复制相同的MotionEvent.ACTION_DOWN,如下所示

if (me.getAction() == MotionEvent.ACTION_DOWN) {
        i++;
            image = new ImageView(this);
            image.setImageBitmap(btn.getDrawingCache());
            image.setId(i);
            //image.setOnTouchListener(dragit);
            layout.addView(image, i, params);
} 

对于ACTION_MOVE和ACTION_UP也是如此。

现在生成新视图后,我尝试为其设置一个OnTouchListener image.setOnTouchListener(dragit);

但问题是我可以创建1000个这样的ImageViews,我怎样才能最终识别它们?我为每个imageview设置了一个id但是如何引用它?

3 个答案:

答案 0 :(得分:1)

将imageViews添加到数组或列表中,然后在onTouch事件中将视图与列表中的视图进行比较

答案 1 :(得分:1)

layout.getChildAt(Y ++)。的getId()

答案 2 :(得分:1)

您的onClickListener 中,您必须使用查看v作为参数,您可以了解它是哪个视图,例如

public void onClick(View v) {
    int id = v.getId(); // id that you have set 
}