我知道可以在自定义的View类上画,但我现在是在资源文件中的View上画,如何实现呢?
就是如何让View使用到定义的Canvas

解决方案 »

  1.   

    在资源文件里头给view加id
    然后在activity里头用findViewById获取到这个view实例。
    获取之后可以调用View种的一些方法去画。
      

  2.   

    这个view实例的什么方法啊?都是用canvas的,
    但是如何把canvas画到view中呢
    有个draw(canvas)方法,可是不管用啊
      

  3.   


    话说你去打开reference,看看view类的一个回调函数onDraw(canvas):Called when the view should render its content.
    它传递了一个canvas作为参数,如果你想要在第一次载入这个view的时候在这个view种绘图,那就一定需要去实现onDraw(canvas)这个函数,然后在这个函数中利用传递进来的canvas进行绘图(具体怎么绘图去看看canvas的reference)。
    也就是说,你可以在你自己定义的这个view类中添加一个canvas类型的成员变量。然后为这个变量添加存取器,通过getCanvas的方法获得这个类的canvas对象。
    但是要主意的是!如果通过canvas对象操作图像,图像只有在用户可视范围内的内容发生改变的时候重新绘图,否则你需要在每次绘图之后调用view.postInvalidate();(主意是view对象不是canvas对象)
    不知道我说明白没有⋯⋯
    唉最近发现有点儿不会说话了⋯⋯经常词不达意神马的⋯⋯话说我小学期在写一个项目,里头涉及了有关view重绘的内容,如果需要我可以把代码发给你⋯⋯
      

  4.   

    自定义一个View,然后把该View放到XML中
      

  5.   

    呵呵,很想一睹这位大牛的代码,小弟我刚学android,希望能看了您的代码有所启发与帮助。吾将不胜感激
      

  6.   

    这个很简单的,是在布局文件中画线呗?以下是代码(在布局文件中画一条2px的黑色的线):
    <LinearLayout 
            android:layout_width="fill_parent"
         android:layout_height="2px"
         android:background="#000000"
            />
    以下是示例图: