首页

android 自定义键盘 示例源码(为了安全)

java

2020-6-29

package com.github.phoenix.activity;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.LinearLayout;

import com.github.phoenix.R;
import com.github.phoenix.utils.DensityUtil;
import com.github.phoenix.utils.ScreenUtil;
import com.github.phoenix.widget.EditView;
import com.github.phoenix.widget.SKeyboardView;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.keyboard_view)
    SKeyboardView keyboardView;
    @BindView(R.id.edit_view)
    EditView editView;
    @BindView(R.id.ll_keyboard)
    LinearLayout llKeyboard;
    @BindView(R.id.ll_guan)
    LinearLayout llGuan;

    private int height = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);

        setSubView();
        initEvent();
    }

    private void initEvent() {
        editView.setOnKeyboardListener(new EditView.OnKeyboardListener() {
            @Override
            public void onHide(boolean isCompleted) {
                if (height > 0) {
                    llGuan.scrollBy(0, -(height   DensityUtil.dp2px(MainActivity.this, 16)));
                }

                if (isCompleted) {
                    Log.i("", "你点击了完成按钮");
                }
            }

            @Override
            public void onShow() {
                llGuan.post(new Runnable() {
                    @Override
                    public void run() {
                        //pos[0]: X,pos[1]: Y
                        int[] pos = new int[2];
                        //获取编辑框在整个屏幕中的坐标
                        editView.getLocationOnScreen(pos);
                        //编辑框的Bottom坐标和键盘Top坐标的差
                        height = (pos[1]   editView.getHeight())
                                - (ScreenUtil.getScreenHeight(MainActivity.this) - keyboardView.getHeight());
                        if (height > 0) {
                            //编辑框和键盘之间预留出16dp的距离
                            llGuan.scrollBy(0, height   DensityUtil.dp2px(MainActivity.this, 16));
                        }
                    }
                });
            }

            @Override
            public void onPress(int primaryCode) {

            }
        });
    }

    private void setSubView() {
        editView.setEditView(llKeyboard, keyboardView, true);
    }
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
KeyboardView-master/.gitignore , 118
KeyboardView-master/.idea/compiler.xml , 686
KeyboardView-master/.idea/copyright/profiles_settings.xml , 74
KeyboardView-master/.idea/encodings.xml , 200
KeyboardView-master/.idea/gradle.xml , 722
KeyboardView-master/.idea/misc.xml , 3308
KeyboardView-master/.idea/modules.xml , 361
KeyboardView-master/.idea/runConfigurations.xml , 564
KeyboardView-master/LICENSE , 11357
KeyboardView-master/README.md , 1261
KeyboardView-master/app/.gitignore , 7
KeyboardView-master/app/build.gradle , 1089
KeyboardView-master/app/proguard-rules.pro , 652
KeyboardView-master/app/src/androidTest/java/com/github/phoenix/ExampleInstrumentedTest.java , 740
KeyboardView-master/app/src/main/AndroidManifest.xml , 671
KeyboardView-master/app/src/main/java/com/github/phoenix/activity/MainActivity.java , 2623
KeyboardView-master/app/src/main/java/com/github/phoenix/base/BaseApplication.java , 551
KeyboardView-master/app/src/main/java/com/github/phoenix/utils/DensityUtil.java , 1260
KeyboardView-master/app/src/main/java/com/github/phoenix/utils/ResUtil.java , 2157
KeyboardView-master/app/src/main/java/com/github/phoenix/utils/ScreenUtil.java , 1095
KeyboardView-master/app/src/main/java/com/github/phoenix/utils/SystemUtil.java , 13377
KeyboardView-master/app/src/main/java/com/github/phoenix/widget/EditView.java , 8902
KeyboardView-master/app/src/main/java/com/github/phoenix/widget/SKeyboardView.java , 4554
KeyboardView-master/app/src/main/res/drawable-xhdpi/img_edit_clear.png , 453
KeyboardView-master/app/src/main/res/drawable-xhdpi/img_keyboard_preview.png , 1809
KeyboardView-master/app/src/main/res/drawable/selector_keyboard_key.xml , 594
KeyboardView-master/app/src/main/res/layout/activity_main.xml , 1903
KeyboardView-master/app/src/main/res/layout/content_keyboard.xml , 925
KeyboardView-master/app/src/main/res/layout/view_keyboard_preview.xml , 519
KeyboardView-master/app/src/main/res/mipmap-hdpi/ic_launcher.png , 3418
KeyboardView-master/app/src/main/res/mipmap-mdpi/ic_launcher.png , 2206
KeyboardView-master/app/src/main/res/mipmap-xhdpi/ic_launcher.png , 4842
KeyboardView-master/app/src/main/res/mipmap-xxhdpi/ic_launcher.png , 7718
KeyboardView-master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png , 10486
KeyboardView-master/app/src/main/res/values-w820dp/dimens.xml , 358
KeyboardView-master/app/src/main/res/values/colors.xml , 742
KeyboardView-master/app/src/main/res/values/dimens.xml , 6920
KeyboardView-master/app/src/main/res/values/strings.xml , 75
KeyboardView-master/app/src/main/res/values/styles.xml , 383
KeyboardView-master/app/src/main/res/xml/keyboard_english.xml , 4376
KeyboardView-master/app/src/main/res/xml/keyboard_number.xml , 2715
KeyboardView-master/app/src/test/java/com/github/phoenix/ExampleUnitTest.java , 396
KeyboardView-master/art/keyboardView.gif , 107190
KeyboardView-master/build.gradle , 583
KeyboardView-master/gradle.properties , 730
KeyboardView-master/gradle/wrapper/gradle-wrapper.jar , 53636
KeyboardView-master/gradle/wrapper/gradle-wrapper.properties , 233
KeyboardView-master/gradlew , 4971
KeyboardView-master/gradlew.bat , 2314
KeyboardView-master/settings.gradle , 15
没有账号? 忘记密码?

社交账号快速登录