Android源码开发之Gallery图片放大倍数
2015-11-23 11:12
471 查看
最近遇到一个客户提出的奇葩需求,要求照片无论滑动还是双击,其最大放大倍数都不超过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看一下
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看一下
相关文章推荐
- 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)
- ViewPager如下效果你研究过吗
- Android编程之客户端通过socket与服务器通信的方法
- 关于Android应用开发的一些安全注意事项
- 详解 Android Activity 生命周期
- 详解 Android Activity 生命周期
- android开发游记:scrollview上下弹动效果和viewpager左右弹动效果
- Volley缓存策略
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android写文件到SDCard的简单代码
- Android之EventBus的使用
- Android隐式意图激活组件
- Android编程中,sp和px和dp的区别
- Android开发必知--WebView加载html5实现炫酷引导页面
- Android计步器开发
- Android冷启动时间优化
- 学习日记-- Android写文件到SDCard的代码
- 1.2 Android与Java ME
- Android写文件到SDCard的一般过程和代码
- android 观察者模式解析