图片没有旋转的时候,可以用利用图片的顶点坐标和图片的宽度、长度来判断当前触点是否在图片的范围内,但是当使用Matrix.setRotate()方法后,怎么来判断触点和图片的关系呢?

解决方案 »

  1.   

    看你绕哪个点旋转了!setRotate不是可以设置绕一个定点旋转么?一般都是默认绕中点!还有就是看你的旋转的角度了!你确定这两点就可以根据算法计算出触点与图片的关系了!
      

  2.   


    final int widthOrig = bmp.getWidth(); 
        final int heightOrig = bmp.getHeight();
        ScaleAngle=ScaleAngle+90;
    if(ScaleAngle>360)
    {
    ScaleAngle=90;
    }
         int newWidth = widthOrig * ScaleTimes;
         int newHeight = heightOrig * ScaleTimes; 
         
         float scaleWidth = ((float) newWidth) / widthOrig;
         float scaleHeight = ((float) newHeight) / heightOrig; 
         Matrix matrix = new Matrix(); 
         /* 使用Matrix.postScale设定维度 */
         matrix.postScale(scaleWidth, scaleHeight);
         /* 使用Matrix.postRotate方法旋转Bitmap*/
         //matrix.postRotate(5*ScaleAngle); 
    //      matrix.setRotate(5*ScaleAngle); 
         matrix.setRotate(ScaleAngle);
         /* 建立新的Bitmap对象 */
         Bitmap resizedBitmap = 
           Bitmap.createBitmap(bmp, 0, 0, widthOrig, heightOrig, matrix, true);
         /**/ 
         BitmapDrawable myNewBitmapDrawable = 
           new BitmapDrawable(resizedBitmap); 
         imgView.setImageDrawable(myNewBitmapDrawable); 这是旋转代码,默认围绕中间旋转的
      

  3.   

    旋转之后你再get一次imageview的current的长宽,再辨别一次看看。