我下载了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
然后实现对代码的回调或执行任何您想执行的操作。