Android如何缩放和滚动动态创建的位图
在我的应用程序中,我使用以下代码保存从服务器下载的地图Android如何缩放和滚动动态创建的位图,android,bitmap,imageview,scrollview,zooming,Android,Bitmap,Imageview,Scrollview,Zooming,在我的应用程序中,我使用以下代码保存从服务器下载的地图 <?xml version="1.0" encoding="utf-8"?> 目前,我只能上下滚动图像。 我需要有能力滚动图像的所有方向,也可以放大和缩小它。 如何做到这一点? 谢谢 Eyal.Sephiroto根据Gallery应用程序代码制作了一个非常简单的ImageViewTouch: 我在一个项目中使用了它,它工作得非常完美,可以从捏到缩,以及任何你想要的东西。默认情况下,设置图像时,图像将缩小以适应屏幕
<?xml version="1.0" encoding="utf-8"?>
目前,我只能上下滚动图像。
我需要有能力滚动图像的所有方向,也可以放大和缩小它。
如何做到这一点?
谢谢
Eyal.Sephiroto根据Gallery应用程序代码制作了一个非常简单的ImageViewTouch: 我在一个项目中使用了它,它工作得非常完美,可以从捏到缩,以及任何你想要的东西。默认情况下,设置图像时,图像将缩小以适应屏幕 编辑:如果要防止自动调整图像大小,可以将ImageViewTouchBase.GetProperteBaseMatrix方法更改为以下内容:
protected void getProperBaseMatrix(RotateBitmap bitmap, Matrix matrix) {
float viewWidth = getWidth();
float viewHeight = getHeight();
float w = bitmap.getWidth();
float h = bitmap.getHeight();
matrix.reset();
matrix.postConcat(bitmap.getRotateMatrix());
matrix.postTranslate((viewWidth - w) / 2, (viewHeight - h) / 2);
}
这将使图像居中,而无需调整其大小。例如,您可以使用WebView,或者查看gallery应用程序的操作方式:将图像添加到此库时,库会自动调整图像大小。你是否试图避免自动调整大小?是的,我删除了它。我改变的方法在我更新的帖子中。谢谢你的帮助。现在,我尝试在任何缩放操作之前拖动图像,但不自动调整大小,但它不会移动。如何修复它?以防万一,每次您执行某项操作时,都会调用一个方法来重新居中图像(不确定名称是什么),如果您想完全绕过它,可以不调用它,也可以让它为空。
protected void getProperBaseMatrix(RotateBitmap bitmap, Matrix matrix) {
float viewWidth = getWidth();
float viewHeight = getHeight();
float w = bitmap.getWidth();
float h = bitmap.getHeight();
matrix.reset();
matrix.postConcat(bitmap.getRotateMatrix());
matrix.postTranslate((viewWidth - w) / 2, (viewHeight - h) / 2);
}