自定义输入车牌号键盘

1.首先在res目录下新建文件夹xml,并在xml文件夹下创建3个文件,分别配置省、市、车牌号信息

(1)province_abbreviation.xml

<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:horizontalGap="0.0px"
    android:keyHeight="8%p"
    android:keyWidth="10%p"
    android:verticalGap="0.0px">
    <Row android:verticalGap="1%p">
        <Key
            android:codes="31908"
            android:horizontalGap="2%p"
            android:keyEdgeFlags="left"
            android:keyLabel="粤"
            android:keyWidth="8%p" />

        <Key
            android:codes="20140"
            android:horizontalGap="1%p"
            android:keyLabel="京"
            android:keyWidth="8%p" />

        <Key
            android:codes="27818"
            android:horizontalGap="2%p"
            android:keyLabel="沪"
            android:keyWidth="8%p" />

        <Key
            android:codes="27941"
            android:horizontalGap="2%p"
            android:keyLabel="津"
            android:keyWidth="8%p" />

        <Key
            android:codes="20864"
            android:horizontalGap="2%p"
            android:keyLabel="冀"
            android:keyWidth="8%p" />

        <Key
            android:codes="26187"
            android:horizontalGap="2%p"
            android:keyLabel="晋"
            android:keyWidth="8%p" />

        <Key
            android:codes="33945"
            android:horizontalGap="2%p"
            android:keyLabel="蒙"
            android:keyWidth="8%p" />

        <Key
            android:codes="36797"
            android:horizontalGap="2%p"
            android:keyLabel="辽"
            android:keyWidth="8%p" />

        <Key
            android:codes="21513"
            android:horizontalGap="2%p"
            android:keyLabel="吉"
            android:keyWidth="8%p" />

        <Key
            android:codes="40657"
            android:horizontalGap="2%p"
            android:keyLabel="黑"
            android:keyWidth="8%p" />

    </Row>

    <Row android:verticalGap="1%p">
        <Key
            android:codes="33487"
            android:horizontalGap="6%p"
            android:keyEdgeFlags="left"
            android:keyLabel="苏"
            android:keyWidth="8%p" />

        <Key
            android:codes="27993"
            android:horizontalGap="2%p"
            android:keyLabel="浙"
            android:keyWidth="8%p" />

        <Key
            android:codes="30358"
            android:horizontalGap="2%p"
            android:keyLabel="皖"
            android:keyWidth="8%p" />

        <Key
            android:codes="38397"
            android:horizontalGap="2%p"
            android:keyLabel="闽"
            android:keyWidth="8%p" />

        <Key
            android:codes="36195"
            android:horizontalGap="2%p"
            android:keyLabel="赣"
            android:keyWidth="8%p" />

        <Key
            android:codes="40065"
            android:horizontalGap="2%p"
            android:keyLabel="鲁"
            android:keyWidth="8%p" />

        <Key
            android:codes="35947"
            android:horizontalGap="2%p"
            android:keyLabel="豫"
            android:keyWidth="8%p" />

        <Key
            android:codes="37122"
            android:horizontalGap="2%p"
            android:keyLabel="鄂"
            android:keyWidth="8%p" />

        <Key
            android:codes="28248"
            android:horizontalGap="2%p"
            android:keyLabel="湘"
            android:keyWidth="8%p" />


    </Row>

    <Row android:verticalGap="1%p">
        <Key
            android:codes="26690"
            android:horizontalGap="15%p"
            android:keyLabel="桂"
            android:keyWidth="8%p" />

        <Key
            android:codes="26691"
            android:horizontalGap="2%p"
            android:keyLabel="琼"
            android:keyWidth="8%p" />

        <Key
            android:codes="28189"
            android:horizontalGap="2%p"
            android:keyLabel="渝"
            android:keyWidth="8%p" />

        <Key
            android:codes="24029"
            android:horizontalGap="2%p"
            android:keyLabel="川"
            android:keyWidth="8%p" />

        <Key
            android:codes="36149"
            android:horizontalGap="2%p"
            android:keyLabel="贵"
            android:keyWidth="8%p" />

        <Key
            android:codes="20113"
            android:horizontalGap="2%p"
            android:keyLabel="云"
            android:keyWidth="8%p" />

        <Key
            android:codes="34255"
            android:horizontalGap="2%p"
            android:keyLabel="藏"
            android:keyWidth="8%p" />
    </Row>
    <Row>
        <Key
            android:codes="38485"
            android:horizontalGap="25%p"
            android:keyLabel="陕"
            android:keyWidth="8%p" />

        <Key
            android:codes="29976"
            android:horizontalGap="2%p"
            android:keyLabel="甘"
            android:keyWidth="8%p" />

        <Key
            android:codes="38738"
            android:horizontalGap="2%p"
            android:keyLabel="青"
            android:keyWidth="8%p" />

        <Key
            android:codes="23425"
            android:horizontalGap="2%p"
            android:keyLabel="宁"
            android:keyWidth="8%p" />

        <Key
            android:codes="26032"
            android:horizontalGap="2%p"
            android:keyLabel="新"
            android:keyWidth="8%p" />
    </Row>
</Keyboard>

(2)letters.xml

<?xml version="1.0" encoding="utf-8"?>
<Keyboard
    android:keyWidth="10%p" android:keyHeight="8%"
    android:horizontalGap="0.0px" android:verticalGap="0.0px"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <Row android:verticalGap="1%p">
        <Key android:codes="81" android:keyLabel="Q"
            android:horizontalGap="1%p" android:keyWidth="8%p"
            android:keyEdgeFlags="left" />
        <Key android:codes="87" android:keyLabel="W"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="69" android:keyLabel="E"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="82" android:keyLabel="R"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="84" android:keyLabel="T"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="89" android:keyLabel="Y"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="85" android:keyLabel="U"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="73" android:keyLabel="I"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="79" android:keyLabel="O"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="80" android:keyLabel="P"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            android:keyEdgeFlags="right" />
    </Row>

    <Row android:verticalGap="1%p">
        <Key android:codes="65" android:keyLabel="A"
            android:horizontalGap="1%p" android:keyWidth="8%p"
            android:keyEdgeFlags="left"/>
        <Key android:codes="83" android:keyLabel="S"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="68" android:keyLabel="D"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="70"  android:keyLabel="F"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="71" android:keyLabel="G"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="72"  android:keyLabel="H"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="74" android:keyLabel="J"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="75" android:keyLabel="K"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="76"  android:keyLabel="L"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            />
        <Key android:codes="23398"  android:keyLabel="学"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            android:keyEdgeFlags="right" />
    </Row>

    <Row >
        <Key android:codes="90" android:keyLabel="Z"
            android:horizontalGap="1%p" android:keyWidth="8%p"
            android:keyEdgeFlags="left"
            />
        <Key android:codes="88" android:keyLabel="X"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="67" android:keyLabel="C"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="86" android:keyLabel="V"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="66" android:keyLabel="B"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="78" android:keyLabel="N"
            android:horizontalGap="2%p" android:keyWidth="8%p"/>
        <Key android:codes="77" android:keyLabel="M"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            />
        <Key android:codes="28207" android:keyLabel="港"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            />
        <Key android:codes="28595" android:keyLabel="澳"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            />
        <Key  android:codes="-3"
            android:keyIcon="@drawable/ic_delete"
            android:horizontalGap="1%p" android:keyWidth="10%p"
            android:isRepeatable="true" />
    </Row>

</Keyboard>

(3)number_or_letters.xml

<?xml version="1.0" encoding="utf-8"?>
<Keyboard
    android:keyWidth="10%p" android:keyHeight="8%"
    android:horizontalGap="0.0px" android:verticalGap="0.0px"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <Row android:verticalGap="1%p">
        <Key android:codes="49" android:keyLabel="1"
            android:horizontalGap="1%p" android:keyWidth="8%p"
            android:keyEdgeFlags="left"  />
        <Key android:codes="50" android:keyLabel="2"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="51" android:keyLabel="3"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="52" android:keyLabel="4"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="53" android:keyLabel="5"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="54" android:keyLabel="6"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="55" android:keyLabel="7"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="56" android:keyLabel="8"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="57" android:keyLabel="9"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="48" android:keyLabel="0"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            android:keyEdgeFlags="right"/>
    </Row>

    <Row android:verticalGap="1%p">
        <Key android:codes="81" android:keyLabel="Q"
            android:horizontalGap="1%p" android:keyWidth="8%p"
            android:keyEdgeFlags="left" />
        <Key android:codes="87" android:keyLabel="W"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="69" android:keyLabel="E"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="82" android:keyLabel="R"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="84" android:keyLabel="T"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="89" android:keyLabel="Y"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="85" android:keyLabel="U"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="73" android:keyLabel="I"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="79" android:keyLabel="O"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="80" android:keyLabel="P"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            android:keyEdgeFlags="right" />
    </Row>

    <Row android:verticalGap="1%p">
        <Key android:codes="65" android:keyLabel="A"
            android:horizontalGap="1%p" android:keyWidth="8%p"
            android:keyEdgeFlags="left"/>
        <Key android:codes="83" android:keyLabel="S"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="68" android:keyLabel="D"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="70"  android:keyLabel="F"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="71" android:keyLabel="G"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="72"  android:keyLabel="H"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="74" android:keyLabel="J"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="75" android:keyLabel="K"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="76"  android:keyLabel="L"
            android:horizontalGap="2%p" android:keyWidth="8%p"
           />
        <Key android:codes="23398"  android:keyLabel="学"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            android:keyEdgeFlags="right" />
    </Row>

    <Row >
        <Key android:codes="90" android:keyLabel="Z"
            android:horizontalGap="1%p" android:keyWidth="8%p"/>
        <Key android:codes="88" android:keyLabel="X"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="67" android:keyLabel="C"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="86" android:keyLabel="V"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="66" android:keyLabel="B"
            android:horizontalGap="2%p" android:keyWidth="8%p" />
        <Key android:codes="78" android:keyLabel="N"
            android:horizontalGap="2%p" android:keyWidth="8%p"/>
        <Key android:codes="77" android:keyLabel="M"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            />
        <Key android:codes="28207" android:keyLabel="港"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            />
        <Key android:codes="28595" android:keyLabel="澳"
            android:horizontalGap="2%p" android:keyWidth="8%p"
            />
        <Key  android:codes="-3"
             android:keyIcon="@drawable/ic_delete"
            android:horizontalGap="1%p" android:keyWidth="10%p"
            android:isRepeatable="true" />
    </Row>

</Keyboard>

2.写键盘工具类KeybordUtil

public class Keyboard_Util {
    private Context mContext;
    private Activity mActivity;
    private KeyboardView mKeyboardView;
    private EditText mEdit;
    private int keybordType;
    /**
     * 省份简称键盘
     */
    private Keyboard province_keyboard;
    /**
     * 数字与大写字母键盘
     */
    private Keyboard number_keyboar;
    /**
     * 字母键盘
     */
    private Keyboard letter_keybord;


    public Keyboard_Util(Activity activity, EditText edit) {
        mActivity = activity;
        mContext = activity;
        mEdit = edit;

        province_keyboard = new Keyboard(mContext, R.xml.province_abbreviation);
        number_keyboar = new Keyboard(mContext, R.xml.number_or_letters);
        letter_keybord = new Keyboard(mContext, R.xml.letters);

        mKeyboardView = (KeyboardView) activity.findViewById(R.id.keyboard_view);
        mKeyboardView.setEnabled(true);
        mKeyboardView.setPreviewEnabled(false);
        mKeyboardView.setOnKeyboardActionListener(listener);
    }

    private KeyboardView.OnKeyboardActionListener listener = new KeyboardView.OnKeyboardActionListener() {
        @Override
        public void swipeUp() {
        }

        @Override
        public void swipeRight() {
        }

        @Override
        public void swipeLeft() {
        }

        @Override
        public void swipeDown() {
        }

        @Override
        public void onText(CharSequence text) {
        }

        @Override
        public void onRelease(int primaryCode) {
        }

        @Override
        public void onPress(int primaryCode) {
        }

        @Override
        public void onKey(int primaryCode, int[] keyCodes) {
            Editable editable = mEdit.getText();
            int start = mEdit.getSelectionStart();
            if (primaryCode == -3) {
                if (editable != null && editable.length() > 0) {
                    if (start > 0) {
                        editable.delete(start - 1, start);
                    }
                }
            } else {
                if (keybordType==0||keybordType==1){
                    editable.replace(0,editable.length(),Character.toString((char) primaryCode));
                }else {
                    editable.insert(start, Character.toString((char) primaryCode));
                }

            }
        }
    };


    /**
     * 切换键盘
     *
     * @param keybordType
     */
    public void changeKeybord(int keybordType) {
        this.keybordType=keybordType;
        switch (keybordType) {
            case 0:
                mKeyboardView.setKeyboard(province_keyboard);
                break;
            case 1:
                mKeyboardView.setKeyboard(letter_keybord);
                break;
            case 2:
                mKeyboardView.setKeyboard(number_keyboar);
                break;
        }
    }

    /**
     * 软键盘展示状态
     */
    public boolean isShow() {
        return mKeyboardView.getVisibility() == View.VISIBLE;
    }

    /**
     * 软键盘展示
     */
    public void showKeyboard() {
        int visibility = mKeyboardView.getVisibility();
        if (visibility == View.GONE || visibility == View.INVISIBLE) {
            mKeyboardView.setVisibility(View.VISIBLE);
        }
    }

    /**
     * 软键盘隐藏
     */
    public void hideKeyboard() {
        int visibility = mKeyboardView.getVisibility();
        if (visibility == View.VISIBLE) {
            mKeyboardView.setVisibility(View.INVISIBLE);
        }
    }

    /**
     * 禁掉系统软键盘
     */
    public void hideSoftInputMethod() {
        mActivity.getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        int currentVersion = android.os.Build.VERSION.SDK_INT;
        String methodName = null;
        if (currentVersion >= 16) {
            // 4.2
            methodName = "setShowSoftInputOnFocus";
        } else if (currentVersion >= 14) {
            // 4.0
            methodName = "setSoftInputShownOnFocus";
        }
        if (methodName == null) {
            mEdit.setInputType(InputType.TYPE_NULL);
        } else {
            Class<EditText> cls = EditText.class;
            Method setShowSoftInputOnFocus;
            try {
                setShowSoftInputOnFocus = cls.getMethod(methodName,
                        boolean.class);
                setShowSoftInputOnFocus.setAccessible(true);
                setShowSoftInputOnFocus.invoke(mEdit, false);
            } catch (NoSuchMethodException e) {
                mEdit.setInputType(InputType.TYPE_NULL);
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }
}

3.布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.a086.customkeybord.MainActivity">

    <EditText
        android:maxLength="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/et_province"
        android:text="粤"
        />
    <EditText
        android:maxLength="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/et_city"
        android:text="B"
        android:layout_toRightOf="@+id/et_province"
        android:layout_marginLeft="5dp"
        />
    <EditText
        android:maxLength="6"
        android:hint="车牌号"
        android:layout_toRightOf="@+id/et_city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/et_searchtxt"
        />
    <android.inputmethodservice.KeyboardView
        android:layout_alignParentBottom="true"
        android:id="@+id/keyboard_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:background="#999999"
        android:keyBackground="@drawable/keybord_bg"
        android:keyTextSize="16sp"
        android:keyTextColor="#000"
        android:visibility="gone" />
</RelativeLayout>

4.使用

public class MainActivity extends AppCompatActivity {
    private Keyboard_Util keyboardUtil;
    private EditText et_searchtxt;
    private EditText et_province;
    private EditText et_city;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_province=findViewById(R.id.et_province);
        et_city=findViewById(R.id.et_city);
        et_searchtxt = (EditText) findViewById(R.id.et_searchtxt);
        et_province.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                    keyboardUtil = new Keyboard_Util(MainActivity.this, et_province);
                    keyboardUtil.hideSoftInputMethod();
                    keyboardUtil.changeKeybord(0);
                    keyboardUtil.showKeyboard();
                return false;
            }
        });
        et_province.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                et_city.requestFocus();
                et_city.setFocusable(true);
                keyboardUtil = new Keyboard_Util(MainActivity.this, et_city);
                keyboardUtil.hideSoftInputMethod();
                keyboardUtil.changeKeybord(1);
                keyboardUtil.showKeyboard();
            }
        });
        et_city.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {

                    keyboardUtil = new Keyboard_Util(MainActivity.this, et_city);
                    keyboardUtil.hideSoftInputMethod();
                    keyboardUtil.changeKeybord(1);
                    keyboardUtil.showKeyboard();
                return false;
            }
        });

        et_city.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.length()>0){
                    et_searchtxt.requestFocus();
                    et_searchtxt.setFocusable(true);
                    keyboardUtil = new Keyboard_Util(MainActivity.this, et_searchtxt);
                    keyboardUtil.hideSoftInputMethod();
                    keyboardUtil.changeKeybord(2);
                    keyboardUtil.showKeyboard();
                }
            }
        });

        et_searchtxt.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                keyboardUtil = new Keyboard_Util(MainActivity.this, et_searchtxt);
                keyboardUtil.hideSoftInputMethod();
                keyboardUtil.changeKeybord(2);
                keyboardUtil.showKeyboard();

                return false;
            }
        });

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值