这篇文章主要介绍了Android怎么实现圆形纯数字按钮,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
最近在搞一个数字拨号按键按钮,就想到使用显示数据表格,但在实现中遇到点问题,在给数字键进行圆形状态键设置时发现一个问题,显示数据表格中自带的原生选择矩形按钮总是存在,于是就想到了让其状态背景设置成透明。
public class KeyboardView extends RelativeLayout { Context 才能;mContext; private 才能GridView 显示数据表格; private 才能;List< Map<字符串,,String>祝辞,dataList; public 才能KeyboardView (Context 上下文),{ ,,,这(上下文,null); ,,} public 才能;KeyboardView (Context 上下文,AttributeSet attrs), { ,,,超级(上下文,attrs); ,,,this.mContext =,上下文; ,,,View View =, View.inflate(上下文,R.layout.layout_virtual_keyboard,, null); ,,,dataList =, new ArrayList<在(); ,,,gridView =,(显示数据表格),view.findViewById (R.id.gv_keybord); ,,,initDataList (); ,,,setupView (); ,,,addView(视图),,//添加视图 ,,} public 才能;List< Map<字符串,,String>祝辞,getDataList (), { ,,,return dataList; ,,} private 才能;void  initDataList(),{,,//初始化数字数据 ,,,for (int 小姐:=,1;,小姐:& lt;, 13;,我+ +),{ ,,,,,Map<字符串,String>, map =, new HashMap<在(); ,,,,,if (小姐:& lt;, 10), { ,,,,,,,map.put (“keyName",, String.valueOf(我)); ,,,,,},else if (小姐:==,10),{ ,,,,,,,map.put (“keyName",,“*”); ,,,,,},else if (小姐:==,11),{ ,,,,,,,map.put (“keyName",, String.valueOf (0)); ,,,,,},else if (小姐:==,12),{ ,,,,,,,map.put (“keyName",,“#”); ,,,,,} ,,,,,dataList.add(地图); ,,,} ,,} public 才能;GridView  getGridView (), { ,,,return 显示数据表格; ,,} private 才能;void  setupView (), { ,,,KeyBoardAdapter KeyBoardAdapter =, new KeyBoardAdapter (dataList mContext也); ,,,gridView.setAdapter (keyBoardAdapter); ,,} }
填充的显示数据表格布局其中android: listSelector=癅android:颜色/透明”设置显示数据表格选择器背景为透明色就可以按照项目设置的样式显示状态选择了
& lt; ? xml version=?.0“,编码=皍tf-8" ?比; & lt; FrameLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android" android:才能layout_width=皐rap_content" android:才能背景=? 3 f51b5" android:才能layout_height=皐rap_content"比; & lt;才能!——,键盘,——比; & lt;才能显示数据表格 ,,,android: id=癅 + id/gv_keybord" ,,,android: layout_width=皐rap_content" ,,,android: layout_height=皐rap_content" ,,,android: layout_alignParentBottom=皌rue" ,,,android: listSelector=癅android:颜色/transparent" ,,,android: horizontalSpacing=? dp" ,,,android: numColumns=?”; ,,,android: verticalSpacing=? dp",/比; & lt;/FrameLayout>
二,显示数据表格适配器,其中填充的项的背景可以是UI切的选型图,也可以自己通过形状绘制出来
public class KeyBoardAdapter extends BaseAdapter { private 才能;Context  mContext; private 才能;List< Map<字符串,,String>祝辞,mDataList; public 才能;KeyBoardAdapter (Context 上下文,List