最近遇到一个客户提出的奇葩需求,要求照片无论滑动还是双击,其最大放大倍数都不超过1.5倍,双击的就不说了,很简单,mtkonlne上也有,手指滑动,放大倍数也要不超过1.5倍,查看代码
packages/apps/Gallery2/src/com/android/gallery3d/ui/PositionController.java
private static final float SCALE_LIMIT = 4;
虽然改了这个最大限制值,但还是无济于事
我使了大招,在Gallery2/src/com/android/gallery3d/ui/PhotoView.java
@Override
public boolean onScale(float focusX, float focusY, float scale) {
if (scale > 1.0f){ //表示放大,scale <0是缩小
PositionController controller = mPositionController;
float mscale = controller.getImageScale();
float zoomRate = controller.getSuggestLargerZoomRate();
Log.i("mode","zoomRate= "+zoomRate);
Log.i("mode",focusY+"-"+focusX+"="+(focusY-focusX));
Log.i("mode","scale="+scale);
Log.i("mode","isAtInitRate="+controller.isAtInitRate());
Log.i("mode","mFilmMode="+mFilmMode);
if (zoomRate > 0.7f && mscale >= zoomRate) {
return true;
}else if(zoomRate < 0.6f && mscale >= 0.4f){
return true;
}
}
这里zoomRate 表示长宽比,手机拍出来的,无非就是两种尺寸,4:3和16:9,可以打log看一下