Java “收缩缩放”仅放大到中心
我正在尝试使我的应用程序中的图像可缩放。它应该能够放大图像的不同部分。由于代码是现在,无论我在哪里做缩放手势,它只会放大到中心,所以我没有机会移动图像或放大到其他区域。 什么是必要的偏心缩放和移动缩放图像Java “收缩缩放”仅放大到中心,java,android,gesture,android-gesture,Java,Android,Gesture,Android Gesture,我正在尝试使我的应用程序中的图像可缩放。它应该能够放大图像的不同部分。由于代码是现在,无论我在哪里做缩放手势,它只会放大到中心,所以我没有机会移动图像或放大到其他区域。 什么是必要的偏心缩放和移动缩放图像 public class MainActivity extends AppCompatActivity { private ScaleGestureDetector mScaleGestureDetector; private float mScaleFactor = 1.0f; priva
public class MainActivity extends AppCompatActivity {
private ScaleGestureDetector mScaleGestureDetector;
private float mScaleFactor = 1.0f;
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = (ImageView)findViewById(R.id.imageView);
mImageView.setScaleType(ImageView.ScaleType.FIT_XY);
mScaleGestureDetector = new ScaleGestureDetector(this, new ScaleListener());
mImageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mScaleGestureDetector.onTouchEvent(event);
return true;
}
});
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector scaleGestureDetector){
mScaleFactor *= scaleGestureDetector.getScaleFactor();
mScaleFactor = Math.max(1.0f,
Math.min(mScaleFactor, 1.7f));
mImageView.setScaleX(mScaleFactor);
mImageView.setScaleY(mScaleFactor);
return true;
}
}
}
出于您的目的,最好的将添加到此库:
当然,也可以将此库添加为本地模块,并根据您的需要对其进行自定义。太好了,这确实适合我!你熟悉那个图书馆吗?这样你就可以帮我解决一个问题了?@MikeKng我能帮你什么?用法很简单,至少通过聊天给我写信。这可能是个问题,我只在手机上登录。但我的问题是,在我有一个不可移动的图像之前,用onTouch方法我可以得到被触摸像素的颜色。现在,只要图像不移动,它就可以工作,但当我放大时,它会返回错误的颜色,就像所有的东西都被置换了一样。但我找不到那个断层的模式。我使用的是bitmap.getPixel()方法,所以我认为在移动图像时它不会影响它。我要把它添加到上面的代码中吗?