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
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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);
}