实现手机拨号键盘数字下有小字母

制作手机拨号键盘也只是粗略的实现了一下。  

先来看看布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#f7f7f7"
    >
    <RelativeLayout
        android:id="@+id/rela_dis"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <LinearLayout
        android:id="@+id/pop_line_layput"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#f7f7f7"
        >
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#f7f7f7"
            ></View>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_45"
        android:background="#f7f7f7"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView

            android:id="@+id/tv_text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:gravity="center"
            android:text=""
            android:ellipsize="none"
            android:singleLine="true"
            android:maxLines="100"
            android:scrollHorizontally="false"
            android:textColor="#616161"
            android:textSize="@dimen/sp_28" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >

        <TextView
            android:id="@+id/bt_one"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_57"
            android:layout_weight="1"
            android:text="1"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />

        <TextView
            android:id="@+id/bt_two"
            android:layout_width="@dimen/dp_125"
            android:layout_height="@dimen/dp_57"
            android:layout_weight="1"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:gravity="center"
            android:textSize="@dimen/sp_25" />

        <TextView
            android:id="@+id/bt_three"
            android:layout_width="@dimen/dp_123"
            android:layout_height="@dimen/dp_57"
            android:layout_weight="1"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/bt_four"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="4"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />

        <TextView
            android:id="@+id/bt_five"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:gravity="center"
            android:text="5"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />

        <TextView
            android:id="@+id/bt_six"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="6"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/bt_seven"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="7"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />

        <TextView
            android:id="@+id/bt_eight"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="8"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />

        <TextView
            android:id="@+id/bt_nine"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="9"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/bt_star"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="*"
            android:gravity="center_horizontal"
            android:layout_gravity="center_vertical"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_32" />

        <TextView
            android:id="@+id/bt_zero"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="0"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />

        <TextView
            android:id="@+id/bt_bottom"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_50"
            android:layout_weight="1"
            android:text="#"
            android:gravity="center"
            android:textColor="@drawable/button_font_style"
            android:background="@drawable/btn"
            android:textSize="@dimen/sp_25" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/dp_70"
        android:background="#ffffff"
        >
            <LinearLayout
                android:id="@+id/line_diss"
                android:background="#ffffff"
                android:gravity="center"
                android:layout_marginRight="@dimen/dp_1"
                android:layout_width="@dimen/dp_119"
                android:layout_height="@dimen/dp_53">
        <ImageView
                android:id="@+id/image_hide"
                android:layout_width="@dimen/dp_21"
                android:layout_height="@dimen/dp_24"
                android:src="@mipmap/hide"
                />
            </LinearLayout>

        <LinearLayout
            android:background="#ffffff"
            android:gravity="center"
            android:layout_marginRight="@dimen/dp_1"
            android:orientation="horizontal"
            android:layout_width="@dimen/dp_120"
            android:layout_height="@dimen/dp_53">
            <ImageView
                android:id="@+id/image_callphone"
                android:layout_width="@dimen/dp_46"
                android:layout_height="@dimen/dp_46"
                android:src="@mipmap/callphone"
                android:layout_marginRight="@dimen/dp_7"
                />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/line_delete"
            android:background="#ffffff"
            android:gravity="center"
            android:layout_width="@dimen/dp_122"
            android:layout_height="@dimen/dp_53">
            <ImageView
                android:id="@+id/image_deletenumber"
                android:layout_width="@dimen/dp_28"
                android:layout_height="@dimen/dp_29"
                android:src="@mipmap/deletenumber"

                />
        </LinearLayout>
    </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#cecece"
            ></View>
    </LinearLayout>
    </RelativeLayout>
</LinearLayout>

 

   主代码

private void dialog() {
    view = LayoutInflater.from(getActivity()).inflate(
            R.layout.popup_layout_item, null);
    popupWindow = new PopupWindow(view,
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT, true);
    popupWindow.setAnimationStyle(R.style.MyPopupWindow_anim_style);
    tv_text2 = view.findViewById(R.id.tv_text2);
    bt_zero = view.findViewById(R.id.bt_zero);
    bt_one = view.findViewById(R.id.bt_one);
    bt_two = view.findViewById(R.id.bt_two);
    bt_three = view.findViewById(R.id.bt_three);
    bt_four = view.findViewById(R.id.bt_four);
    bt_five = view.findViewById(R.id.bt_five);
    bt_six = view.findViewById(R.id.bt_six);
    bt_seven = view.findViewById(R.id.bt_seven);
    bt_eight = view.findViewById(R.id.bt_eight);
    bt_nine = view.findViewById(R.id.bt_nine);
    bt_star = view.findViewById(R.id.bt_star);
    bt_bottom = view.findViewById(R.id.bt_bottom);
    String text1 ="1 ive";
    String text2 ="2 abc";
    String text3 ="3 def";
    String text4 ="4 ghi";
    String text5 ="5 jkl";
    String text6 ="6 mno";
    String text7 ="7pors";
    String text8 ="8 tuv";
    String text9 ="9wxyz";
    String text0 ="0 +   ";
    String text11 ="* p  ";
    String text12 ="* W  ";
    SpannableString textSpan1 = new SpannableString (text1);
    SpannableString textSpan2 = new SpannableString (text2);
    SpannableString textSpan3 = new SpannableString (text3);
    SpannableString textSpan4 = new SpannableString (text4);
    SpannableString textSpan5 = new SpannableString (text5);
    SpannableString textSpan6 = new SpannableString (text6);
    SpannableString textSpan7 = new SpannableString (text7);
    SpannableString textSpan8 = new SpannableString (text8);
    SpannableString textSpan9= new SpannableString (text9);
    SpannableString textSpan0= new SpannableString (text0);
    int start = text1.indexOf('i');
    int end = text1.length();
    int start1 = text2.indexOf('a');
    int end1 = text2.length();
    int start2 = text3.indexOf('d');
    int end2 = text3.length();
    int start3 = text4.indexOf('g');
    int end3 = text4.length();
    int start4 = text5.indexOf('j');
    int end4 = text5.length();
    int start5 = text6.indexOf('m');
    int end5 = text6.length();
    int start6 = text7.indexOf('p');
    int end6 = text7.length();
    int start7 = text8.indexOf('t');
    int end7 = text8.length();
    int start8 = text9.indexOf('w');
    int end8 = text9.length();
    int start0 = text0.indexOf('+');
    int end0 = text0.length();
    textSpan1.setSpan(new AbsoluteSizeSpan(80),0,start,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    textSpan1.setSpan(new AbsoluteSizeSpan(30),start,end,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan2.setSpan(new AbsoluteSizeSpan(80),0,start1,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan2.setSpan(new AbsoluteSizeSpan(30),start1,end1,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan3.setSpan(new AbsoluteSizeSpan(80),0,start2,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan3.setSpan(new AbsoluteSizeSpan(30),start2,end2,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan4.setSpan(new AbsoluteSizeSpan(80),0,start3,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan4.setSpan(new AbsoluteSizeSpan(30),start3,end3,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan5.setSpan(new AbsoluteSizeSpan(80),0,start4,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan5.setSpan(new AbsoluteSizeSpan(30),start4,end4,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan6.setSpan(new AbsoluteSizeSpan(80),0,start5,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan6.setSpan(new AbsoluteSizeSpan(30),start5,end5,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan7.setSpan(new AbsoluteSizeSpan(80),0,start6,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan7.setSpan(new AbsoluteSizeSpan(30),start6,end6,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan8.setSpan(new AbsoluteSizeSpan(80),0,start7,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan8.setSpan(new AbsoluteSizeSpan(30),start7,end7,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan9.setSpan(new AbsoluteSizeSpan(80),0,start8,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan9.setSpan(new AbsoluteSizeSpan(30),start8,end8,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan0.setSpan(new AbsoluteSizeSpan(80),0,start0,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    textSpan0.setSpan(new AbsoluteSizeSpan(30),start0,end0,Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    bt_two = view.findViewById(R.id.bt_two);
    bt_three = view.findViewById(R.id.bt_three);
    bt_four = view.findViewById(R.id.bt_four);
    bt_five = view.findViewById(R.id.bt_five);
    bt_six = view.findViewById(R.id.bt_six);
    bt_seven = view.findViewById(R.id.bt_seven);
    bt_eight = view.findViewById(R.id.bt_eight);
    bt_nine = view.findViewById(R.id.bt_nine);
    bt_star = view.findViewById(R.id.bt_star);
    bt_bottom = view.findViewById(R.id.bt_bottom);
    bt_one.setText(textSpan1);
    bt_two.setText(textSpan2);
    bt_three.setText(textSpan3);
    bt_four.setText(textSpan4);
    bt_five.setText(textSpan5);
    bt_six.setText(textSpan6);
    bt_seven.setText(textSpan7);
    bt_eight.setText(textSpan8);
    bt_nine.setText(textSpan9);
    bt_zero.setText(textSpan0);
    image_deletenumber = view.findViewById(R.id.image_deletenumber);
    image_callphone = view.findViewById(R.id.image_callphone);
    image_hide = view.findViewById(R.id.image_hide);
    line_diss = view.findViewById(R.id.line_diss);
    rela_dis = view.findViewById(R.id.rela_dis);
    line_delete = view.findViewById(R.id.line_delete);
    popupWindow.setFocusable(false);// 取得焦点
    //注意  要是点击外部空白处弹框消息  那么必须给弹框设置一个背景色  不然是不起作用的
    popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    //点击外部消失
    popupWindow.setOutsideTouchable(true);
    //设置可以点击
    popupWindow.setTouchable(true);
    bt_zero.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_zero);
            all += 0;
            tv_text2.setText(all);
        }
    });
    bt_one.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_one);
            all +=1;
            tv_text2.setText(all);
        }
    });

    bt_two.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_two);
            all += 2;
            tv_text2.setText(all);
        }
    });

    bt_three.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_three);
            all += 3;
            tv_text2.setText(all);
        }
    });

    bt_four.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_four);
            all += 4;
            tv_text2.setText(all);
        }
    });

    bt_five.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_five);
            all += 5;
            tv_text2.setText(all);
        }
    });

    bt_six.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_six);
            all += 6;
            tv_text2.setText(all);
        }
    });
    bt_seven.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_seven);
            all += 7;
            tv_text2.setText(all);
        }
    });

    bt_eight.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_eight);
            all += 8;
            tv_text2.setText(all);
        }
    });

    bt_nine.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_nine);
            all += 9;
            tv_text2.setText(all);
        }
    });

    bt_star.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_star);
            all += tempText.getText().toString();
            tv_text2.setText(all);
        }
    });

    bt_bottom.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            tempText = (TextView) view.findViewById(R.id.bt_bottom);
            all += tempText.getText().toString();
            tv_text2.setText(all);
        }
    });
    image_callphone.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            popupWindow.dismiss();
        
        }
    });

    line_delete.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            String s = tv_text2.getText().toString();

            new Handler().postDelayed(new Runnable(){
                public void run() {
                    for (int i = 0; i < s.length(); i++) {
                        if (s.length() > 0) {
                            all = all.substring(0, all.length() - 1);
                            tv_text2.setText(all);
                        }
                        //execute the task
                    }
                }
            }, 200);
            Collections.reverse(infos);
            adapter = new MyAdapter(infos, getActivity());
            callView.setAdapter(adapter);
            List<CallLogInfo> list = new ArrayList<>();
            adapter.notifyDataSetChanged();
            return true;
        }
    });

    tv_text2.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            incomingNumber = tv_text2.getText().toString().replace(" ", "");
            if (incomingNumber.length()==0){
                listSeleteView.setVisibility(View.GONE);
            }else{

                listSeleteView.setVisibility(View.VISIBLE);
                showListView();



            }
        }

        @Override
        public void afterTextChanged(Editable editable) {


        }
    });
    line_delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String s = tv_text2.getText().toString();
            if (s.length() > 0) {
                all = all.substring(0, all.length() - 1);
                tv_text2.setText(all);
            }
        }
    });
    line_diss.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            popupWindow.dismiss();
        }
    });


}

以上就可以很轻松的实现手机拨号键盘功能了,大神们有好的建议请告知本人。。谢谢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值