Android 自定义控件的实现
本文种实现的自定义控件为 键盘,总体有三步:
- 实现键盘的样式(xml);
- 实现自定义属性(attrs);
- 实现自定义view类;
- .将自定义的键盘布局加载到自定义的dialog中;
- 自定义dialog,实现回调监听,让键盘被点击的数字都能回传
- 展示dialog
1.首先,先实现键盘的样式,我在这里实现的为输入金额的键盘;
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:rowCount="4">
<TextView
android:id="@+id/t7"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_gray"
android:textColor="@color/text_color_black"
android:text="7"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t8"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_gray"
android:textColor="@color/text_color_black"
android:text="8"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t9"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_gray"
android:textColor="@color/text_color_black"
android:text="9"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t100"
android:visibility="gone"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_darkgray"
android:textColor="@color/text_color_black"
android:text="¥100"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t4"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_gray"
android:textColor="@color/text_color_black"
android:text="4"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t5"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_gray"
android:textColor="@color/text_color_black"
android:text="5"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t6"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_gray"
android:textColor="@color/text_color_black"
android:text="6"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t50"
android:visibility="gone"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_darkgray"
android:textColor="@color/text_color_black"
android:text="¥50"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView
android:id="@+id/t1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="30sp"
android:gravity="center"
android:background="@color/text_bgcolor_gray"
android:textColor="@color/text_color_black"
android:text="1"
android:layout_marginRight="1dp"
android:layout_marginBottom="1dp"/>
<TextView