个性图片预览和多点触控:
功能:
1.自由的放大和缩小
2.双击放大和缩小
3.放大以后可以进行自由的移动
4.处理与viewpager之间的时间冲突
需要用到的知识点:
1.Matrix
2.ScaleGestureDetector
3.GestureDetector
4.事件分发机制
封装可以缩放的imgeview:
要做的:
1.onGloableLayout():需要注册与移除(onAttachToWindow onDeTachToWindow)
设置初始时的放大比
设置最大的放大比
设置最小的缩放比
//获取imageview加载完成的图片
if(!mOnce)
{
int width = getWidth();
itt height = getHeight();
Drawable d = getDrawable();
if(d == null){
return;}
2.设置缩放比例:
int dw = d.getIntrinsicWidth();
int dh = d.getIntrinsicHeight();
float scale = 1.0f;
if(dw>width()&&dh<height){
scale = width *1.0f/dh;
}
将图片移动到屏幕中心(用到矩阵的位置变换)
matrix.postTranslate(dx,dy);
matrix.postScale(初始的缩放比,初始的缩放比,width/2,height/2());
setImageMatrix(matrix);
3.实现缩放:
手势操作
GestureDetector: begin() onScale() end()