1
私はRecyclerView
をズームする必要があるプロジェクトがScaleGestureDetector
です。 RecyclerView
の外側でピンチズームしているときに機能しますが、RecyclerView
以上のピンチでは機能しません。私はしばらくこの問題を解決するために苦労してきましたが、解決できませんでした。どんな助けも高く評価されます。前もって感謝します!!ScaleGestureDetectorは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);
}
}