Vicky Kumar
Vicky Kumar

Reputation: 21

implement popup window on keyboard in android to add images in custom keyboard

This keyboard can be select from the keyboard list and user can use it from any application. just implement popup-window to add images on keyboard in custom soft keyboard

Upvotes: 2

Views: 1256

Answers (1)

Ricky Umlas
Ricky Umlas

Reputation: 61

You have to create a class that extends PopupWindow

public class CustomPopup extends PopupWindow {
    Context mContext;
    View rootView;

    public CustomPopup(View rootView, Context mContext){
        super(mContext);
        this.mContext = mContext;
        this.rootView = rootView;
        View customView = createCustomView();
        setContentView(customView);
        setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
        setSize(250, LayoutParams.MATCH_PARENT);
    }

    private View createCustomView(){
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.custom_popup, null, false);

        return view;
    }

    public void setSize(int width, int height){
        setWidth(width);
        setHeight(height);
    }

}

Then use it in your SoftKeyboard Class

CustomPopup popupWindow;

public View onCreateInputView() {
        final View root = getLayoutInflater().inflate(R.layout.input, null);

        popupWindow = new CustomPopup(root, this);

        return root;
}

This is how to show the popup. Note that mInputView is your keyboardView variable

private void showPopup() {
        int height = mInputView.getHeight();
        popupWindow.setSize(LayoutParams.MATCH_PARENT, height);
        popupWindow.showAtLocation(mInputView.getRootView(), Gravity.BOTTOM, 0, 0);
        final InputMethodManager mInputMethodManager = (InputMethodManager) getBaseContext()
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        mInputMethodManager.showSoftInput(mInputView, 0);
    }

Upvotes: 2

Related Questions