网上好多资料都是 通过属性来旋转 我现在是想做一个 根据OrientationEventListener 这个监听来动态的改变 控件的方向我想通过  findViewById  获取控件 然后在 那个监听类中的onOrientationChanged 方法中
用 setOrientation 的方法 动态的改变 该控件的方向 我想要控件重绘一个 但是没有搞好有没有能提供一个思路的android 2.3.5 

解决方案 »

  1.   

    简单说就是:继承View类,并在OnDraw()方法中实现旋转。
      

  2.   

    你的意思 是 在 set 方法中 调用 OnDraw?
      

  3.   

    同意楼上,不过旋转起来不好实现点击事件,特别是矩形的,不妨试试Matrix的mapPoints,我也在研究之中
      

  4.   

    调用 ondraw  又有 问题 1 刷新问题 2 效果很不理想啊
      

  5.   

    你试过了么?刷新是应该问题不大仅仅只是在set时ondraw, 效果很不理想是指你试过之后的效果么?
      

  6.   


    如果不是在onThouch事件刷新可以创建Handler,用线程控制旋转角度,然后发送消息让UI线程进行invalidate
      

  7.   

    我继承一个 button 刷新以后 就出现不全的状况 控件 刷新 也缓慢 就是点控件后 不立即刷新
      

  8.   

    在set时候的方法调用
    public void setOrientation(boolean orientation) {
    Orientation = orientation;
    invalidate();
    }
    我测试时旋转不卡,至于变形的话,没有明白。
    旋转180°用下
    mMatrix.setRotate(180, centerX, centerY);  其中旋转中心为center.其他的你继续研究一下
      

  9.   

    为什么要重绘那么麻烦。
    不是有animation么,通过更改控件坐标,就可以实现旋转了,而且可以旋转任意角度。
      

  10.   

    嗯可以的,有个方法是让被动画处理的控件停在最后一帧。
    setFillAfter(boolean b)这个方法,参数给true就ok了。
    !写在动画方法后。
      

  11.   

    是一个电子白板的东西,当时还做了个小Demo,不过没有实现旋转的功能
      

  12.   

    成功了 ,但是我想问 为什么我在XML中定义的却没有效果呢?
      

  13.   


    嗯,成功就好。你的问题。能说具体点么?在xml里定义setFillAfter么?还是别的什么?