我知道可以在自定义的View类上画,但我现在是在资源文件中的View上画,如何实现呢?
就是如何让View使用到定义的Canvas
就是如何让View使用到定义的Canvas
解决方案 »
- Android 通过socket连接网络打印机来打印
- Android 中Application层与底层C代码的通信问题
- 涂鸦板 透明擦子 实现. 急!!!!
- 怎样让dispatchTouchEvent 不侦听按扭事件
- 求助 gridview 增加 footview的问题
- 如何调用显示已存在的activity?
- ANDROID读取VECTOR错误,
- 来电时,看不到手机号码(或只看到未知号码)
- android从上往下应该学习哪些东西
- 安卓做短线删除 这个uri 是不是有些手机不适用?content://sms/conversations/ 求助,谢谢。
- android中同一个activity中设置两个button怎么区别?
- 求救啊,这个数据类型怎么回事啊
然后在activity里头用findViewById获取到这个view实例。
获取之后可以调用View种的一些方法去画。
但是如何把canvas画到view中呢
有个draw(canvas)方法,可是不管用啊
话说你去打开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重绘的内容,如果需要我可以把代码发给你⋯⋯
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="2px"
android:background="#000000"
/>
以下是示例图: