setOnLongClickListener不使用PinchImageView

时间:2014-06-12 13:35:25

标签: java android imageview

我下载了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可能不一样但值得一试。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

implements OnTouchListener, View.OnLongClickListener

然后实现对代码的回调或做任何你想做的事。