ImageSwitcher中图片的放大和缩小有的图片可以有的不可以

 public boolean onTouch(View v, MotionEvent event) {
   // TODO Auto-generated method stub
   switch (event.getAction() & MotionEvent.ACTION_MASK) {
   case MotionEvent.ACTION_DOWN: // 手指压下屏幕
    mode = DRAG;
    flag = 1;
    isSwitching=false;
    currentMatrix.set(imageView.getImageMatrix());
    startdx = event.getX();
    startPoint.set(event.getX(),event.getY());
    break;
   case MotionEvent.ACTION_MOVE:
    if (mode == DRAG) {
     enddx = event.getX();
     flag = 2;
     isSwitching = false;
    }else if(mode==ZOOM){
     float endDis=distance(event);//结束距离
     if(endDis>10f){
     float scale=endDis/startDis;
     
                    Bitmap bas =((BitmapDrawable) bmd[index]).getBitmap();       
     matrix.set(currentMatrix);
           matrix.postScale(scale, scale,midPoint.x,midPoint.y);
          int hdx=0;
          int wdy=0;
          wdy=bas.getWidth();
          hdx=bas.getHeight();
          if(bas.getWidth()>wide){
        wdy=wide;
       }else{
        wdy=bas.getWidth();
       } 
          if(bas.getHeight()>height){
           hdx=height;
          }else{
           hdx=bas.getHeight();
          }
     bitmap = Bitmap.createBitmap(bas, 0, 0, wdy, hdx, matrix, true);
     imageView.setImageBitmap(bitmap);
        imageView.invalidate();   */
     }
    }
    break;
   case MotionEvent.ACTION_UP:// 有手指离开屏幕
    if (mode == DRAG) {
     if (flag == 1) {
      dx = 0;                           
      }
     if (flag == 2) {
      dx = enddx - startdx;
     }
     if (dx > 20f) {
      if (index > 0) {
       index--;
      imageSwitcher.setImageDrawable(bmd[index]); // 显示当前图片
      } else {
       index = lth - 1;
      imageSwitcher.setImageDrawable(bmd[index]); // 显示当前图片
       
      }
     } else if (dx < -20f) {
      if (index < lth - 1) {
       index++;
     imageSwitcher.setImageDrawable(bmd[index]); // 显示当前图片
       
      } else {
       index = 0;
          imageSwitcher.setImageDrawable(bmd[index]); // 显示当前图片
      
      }
     } else {
     }
    
    }
    break;
   case MotionEvent.ACTION_POINTER_UP :// 有手指离开屏幕,但还有手指在
    mode = 0;
    break;
   case MotionEvent.ACTION_POINTER_DOWN:
    mode = ZOOM;
    startDis=distance(event);  
    if(startDis>10f){
     midPoint=mid(event);
     currentMatrix.set(imageView.getImageMatrix());//记录当前的缩放倍数
    }
    break;
   }
   
   return true;
  }
 }

啸鸣
浏览 3351回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP