【发布时间】:2020-04-05 00:08:52
【问题描述】:
我有一个项目需要使用ScaleGestureDetector 缩放RecyclerView。它适用于在RecyclerView 之外进行捏合缩放,但不适用于在RecyclerView 上进行捏合。我一直在努力解决这个问题,但无法解决它。非常感谢任何帮助。提前致谢!!
这是我的java代码
recyclerView.addOnItemTouchListener(new GalleryAdapter.RecyclerTouchListener(getApplicationContext(), recyclerView, new GalleryAdapter.ClickListener() {
@Override
public void onClick(View view, int position) {
Bundle bundle = new Bundle();
bundle.putSerializable("images", images);
bundle.putInt("position", position);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
SlideshowDialogFragment newFragment = SlideshowDialogFragment.newInstance();
newFragment.setArguments(bundle);
newFragment.show(ft, "slideshow");
}
@Override
public void onLongClick(View view, int position) {
}
}));
scaleGestureDetector = new ScaleGestureDetector(
this, new MySimpleOnScaleGestureListener(textMsg, recyclerView, factor));
private class MySimpleOnScaleGestureListener
extends ScaleGestureDetector.SimpleOnScaleGestureListener{
TextView viewMessage;
RecyclerView viewMyImage;
float factor;
public MySimpleOnScaleGestureListener(TextView v, RecyclerView iv ,float f) {
super();
viewMessage = v;
viewMyImage = iv;
factor = f;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
//factor = 10.0f;
return true;
//return super.onScaleBegin(detector);
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
float scaleFactor = detector.getScaleFactor() - 1;
factor += scaleFactor;
viewMessage.setText(String.valueOf(scaleFactor)
+ "\n" + String.valueOf(factor));
viewMyImage.setScaleX(factor);
viewMyImage.setScaleY(factor);
return true;
//return super.onScale(detector);
}
}
【问题讨论】:
标签: android android-recyclerview pinchzoom