效果图:
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="3"
android:rowCount="4">
<Button
android:id="@+id/btn_num1"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="0"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="1"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num2"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="1"
android:layout_marginStart="76dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="2"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num3"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="2"
android:layout_marginStart="76dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="3"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num4"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="0"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="4"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num5"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="1"
android:layout_marginStart="76dp"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="5"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num6"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="2"
android:layout_marginStart="76dp"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="6"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num7"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="0"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="7"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num8"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="1"
android:layout_marginStart="76dp"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="8"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_num9"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="2"
android:layout_marginStart="76dp"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="9"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<LinearLayout
android:id="@+id/btn_numDel"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="0"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:clickable="true"
android:gravity="center">
<ImageView
android:id="@+id/iv_del"
android:layout_width="72dp"
android:layout_height="49dp"
android:src="@mipmap/num_del" />
</LinearLayout>
<Button
android:id="@+id/btn_num0"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="1"
android:layout_marginStart="76dp"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="0"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
<Button
android:id="@+id/btn_numOK"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_column="2"
android:layout_marginStart="76dp"
android:layout_marginTop="45dp"
android:background="@drawable/btn_num_selector"
android:gravity="center"
android:text="OK"
android:textColor="@color/selector_num_text"
android:textSize="72sp" />
</GridLayout>
public class NumberKeyboard extends FrameLayout implements View.OnClickListener {
private Button num1, num2, num3, num4, num5, num6, num7, num8, num9, num0, numOk;
private LinearLayout numDel;
private ClickListener onClickListener;
public NumberKeyboard(Context context) {
super(context);
initView(context, null);
}
public NumberKeyboard(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context, attrs);
}
public NumberKeyboard(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context, attrs);
}
private void initView(Context context, AttributeSet attrs) {
View view = onCreateView();
num0.setOnClickListener(this);
num1.setOnClickListener(this);
num2.setOnClickListener(this);
num3.setOnClickListener(this);
num4.setOnClickListener(this);
num5.setOnClickListener(this);
num6.setOnClickListener(this);
num7.setOnClickListener(this);
num8.setOnClickListener(this);
num9.setOnClickListener(this);
numOk.setOnClickListener(this);
numDel.setOnClickListener(this);
LayoutParams params = new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
this.addView(view, params);
}
private View onCreateView() {
View view = LayoutInflater.from(this.getContext()).inflate(R.layout.number_keyboard, null);
num1 = view.findViewById(R.id.btn_num1);
num2 = view.findViewById(R.id.btn_num2);
num3 = view.findViewById(R.id.btn_num3);
num4 = view.findViewById(R.id.btn_num4);
num5 = view.findViewById(R.id.btn_num5);
num6 = view.findViewById(R.id.btn_num6);
num7 = view.findViewById(R.id.btn_num7);
num8 = view.findViewById(R.id.btn_num8);
num9 = view.findViewById(R.id.btn_num9);
num0 = view.findViewById(R.id.btn_num0);
numOk = view.findViewById(R.id.btn_numOK);
numDel = view.findViewById(R.id.btn_numDel);
return view;
}
@Override
public void onClick(View v) {
if (onClickListener==null){
return;
}
switch (v.getId()) {
case R.id.btn_num0:
onClickListener.onNumberClickListener(0);
break;
case R.id.btn_num1:
onClickListener.onNumberClickListener(1);
break;
case R.id.btn_num2:
onClickListener.onNumberClickListener(2);
break;
case R.id.btn_num3:
onClickListener.onNumberClickListener(3);
break;
case R.id.btn_num4:
onClickListener.onNumberClickListener(4);
break;
case R.id.btn_num5:
onClickListener.onNumberClickListener(5);
break;
case R.id.btn_num6:
onClickListener.onNumberClickListener(6);
break;
case R.id.btn_num7:
onClickListener.onNumberClickListener(7);
break;
case R.id.btn_num8:
onClickListener.onNumberClickListener(8);
break;
case R.id.btn_num9:
onClickListener.onNumberClickListener(9);
break;
case R.id.btn_numDel:
onClickListener.onDelClickListener();
break;
case R.id.btn_numOK:
onClickListener.onEnterClickListener();
break;
}
}
public void setOnClickListener(ClickListener onClickListener) {
this.onClickListener = onClickListener;
}
public interface ClickListener {
void onNumberClickListener(int num);
void onDelClickListener();
void onEnterClickListener();
}
}
完毕。
原文地址:https://blog.csdn.net/abc00002/article/details/127394719
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_29564.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。