android自定义控件

---恢复内容开始---

1.新建一个类,继承View父类。重写一个或多个构造器后,在图编辑器里就有该控件可以拖动添加了。

2.若想使用Draw来绘制自己的控件。可以在View()方法中使用Draw()来绘制。

3.还可以定义控件属性选择。   new——〉android  resource file ——〉resource type(drawable)___  root element(selector)——〉

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"  android:drawable="@drawable/ic_menu_camera"></item>                      //被按下时  使用ic_menu_camera 这个资源
<item android:state_pressed="false" android:drawable="@drawable/ic_menu_share"></item> //未被按下时 使用ic_menu_share这个资源 </selector>

4.例如,与button的 background相关联 。

<Button
        android:background="@drawable/button_skin"        ----指定的是这个selector文件,而不是固定的背景文件。
        android:id="@+id/login_commit_btn"
        android:onClick="register"
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/login_input_code_et"
        android:layout_below="@+id/login_input_code_et"
        android:layout_marginTop="44dp"
        android:text="注册" />

 5. 在draw(Canvas canvas)方法中

      画出一个图片后,invalidate()方法可以让当前这个图片无效,而view会自动检测到无效时会重新调用Draw()方法。

  可以用canvas.save()方法来保存canvas状态。保存后可以进行修改相关状态。

  然后再调用canvas.restore()方法来恢复。

posted @ 2017-08-21 10:37  halo-漾  阅读(146)  评论(0编辑  收藏  举报