我自定义了一个View,然后在public void onDraw(Canvas canvas) 里面调用 
matrix.postRotate(30);bmp=Bitmap.createBitmap(bmp,0,0,bmp.getWidth(), bmp.getHeight(),matrix,true);canvas.drawBitmap(bmp, 20, 15, null);这样造成的现象就是图片会不断向右下角移动,但是把matrix.postRotate(30)改成matrix.postRotate(90) 90度之后是正常的,不知道各位遇见过这样的现象吗?

解决方案 »

  1.   

    但是我已经在参数里面动态 bmp.getWidth(), bmp.getHeight() 了啊
      

  2.   

    你看看你的bmp,应该是不断在变。
      

  3.   

    确实是不断变化的, 我用 
    bmp = Bitmap.createScaledBitmap(bmp, 86, 86, true);
    之后,发现虽然不跑位了,但是图片越来越小又迷惑了打印出来的宽高也是86啊,不知道为什么了
      

  4.   

    matrix是成员变量么? 如果是, 别用postRotate(), 这个函数会不停地和上次的matrix相乘, 应该用setRotate(angle)
      

  5.   

    和postRotate没关系,是旋转之后图片的大小有变化造成的