У меня есть пользовательский класс MyKBV, который расширяет KeyBoardView.I создал это настраиваемое представление, чтобы использовать собственный шрифт для ключей. Я могу видеть измененный шрифт на клавишах, но проблема заключается в каждом перекрытии клавиш с ключами по умолчанию из XML, который, как я полагаю, является TypefaceE.DEFAULT_BOLD.SO, то, что я вижу, это две строки на каждом ключе, выделенные жирным шрифтом, и один с Я хочу, чтобы очистить ключи по умолчанию, чтобы отображались только пользовательские. Я потратил много времени на это. Было бы полезно, если бы кто-нибудь мог указать, где я ошибаюсь или что могу do.Thanks !!Пользовательские кнопки KeyBoardView Android по умолчанию:
public class MyKBV extends KeyboardView {
Context context;
@Override
public void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
Typeface font = Typeface.createFromAsset(context.getAssets(),
"fonts/Hippie.otf");
paint.setTypeface(font);
paint.setTextSize(40);
List<Key> listKeys = getKeyboard().getKeys();
for (Key key : listKeys) {
if (key.label != null) {
if (key.label.toString().length() > 1) {
paint.setTextSize(30);
canvas.drawText(key.label.toString(), key.x
+ (key.width/2) - 15, key.y + (key.height/2)
+ 10, paint);
} else {
canvas.drawText(key.label.toString(), key.x
+ (key.width/2) - 10, key.y + (key.height/2)
+ 10, paint);
}
}
}
}
public MyKeyBoardView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
this.context = context;
}
}
Ум, вы пробовали не звонить super.onDraw? Это предотвратит рисование базовой клавиатуры .. при условии, что вы хотите сделать все чертеж самостоятельно .. –
У вас есть решение @luckysing – Fay007