我下载了android-pinch jar,以便可以使用缩放功能。我遇到的问题是我必须执行setOnLongClickListener,因为我想创建一个DragShadow供用户在拖动图标或图像时看到,并且想为图像分配setOnClickListener。但是PinchImageView由于某种原因不适用于我的单击和长按侦听器,什么也没发生。

这是代码(这是一个自定义适配器):

@Override
public View getView(int position, View view, ViewGroup viewGroup)
{
    try
    {
        if(view == null)
            view = myInflater.inflate(R.layout.tools_layout, viewGroup, false);

        PinchImageView img = (PinchImageView)view.findViewById(R.id.imageView);
        img.setBackgroundResource(drawId[position]);
        img.setTag(icons.get(position));

        img.setLongClickable(true);

        img.setOnLongClickListener(longListen);
    }
    catch(Exception ex)
    {
        Log.i("customException", "getView():" + ex.getMessage());
    }
    return view;
}

View.OnLongClickListener longListen = new View.OnLongClickListener()
{
    @Override
    public boolean onLongClick(View v)
    {
        try
        {
            isListItem = true; // this never gets run...
            Log.i(TAG, "long click");
            ClipData data = ClipData.newPlainText("", "");
            DragShadow dragShadow = new DragShadow(v);

            v.startDrag(data, dragShadow, v, 0);
        }
        catch(Exception ex)
        {
            Log.i("customException", "longListen: " + ex.getMessage());
        }
        return false;
    }
};


我什至尝试将返回值更改为true,因为我在TouchImageView中看到更改返回值可以使它工作,对于PinchImageView可能不一样,但是值得尝试。有什么建议么?

最佳答案

您可以尝试输入PinchImageView源代码,并将顶部更改为:

implements OnTouchListener, View.OnLongClickListener


然后实现对代码的回调或执行任何您想执行的操作。

09-11 15:37