В продолжении темы - Клавиатуры под Андройд (дополнительные символы на клавише)

Блог им. allasc /
Столкнулся с такой простой задачей
Как повесить на клавиши изображения доп символов

например цифры в верхнем ряду


казалось бы тривиальная задача, но чето я встрял на неделю, и даже общение на профильных русскоязычных форумах не помогло
одно стало ясно, что ответ нужно искать в англоязычной части интернета, но ввиду моего плохого английского поиск затянулся

слава богу я нашол то что искал, и решил сделать для себя закладочку в вашем блоге

1) В описании клавиатуры (res/xml) указываем через запятую все возможные значения


<Row>
        <Key android:codes="1081,49" android:keyLabel="й" android:keyEdgeFlags="left"/>
......
    </Row>

при первом нажатии — символ с кодом 1081 =«й»
при двойном нажатии — символ с кодом 49 =«1»

2) А для того что бы пользователь знал что на клавише повешены дополнительные символы, придется нарисовать их на каждой клавише в ручную
Ниже приведен кусок кода отвечающий за это
Не совсем мой пример, зато работает очень наглядно и с пол оборота
public class MyKeyboardView extends KeyboardView {
    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        Paint paint = new Paint();
        paint.setTextAlign(Paint.Align.CENTER);
        paint.setTextSize(25);
        paint.setColor(Color.RED);

        List<Key> keys = getKeyboard().getKeys();
        for(Key key: keys) {
            if(key.label != null)
                canvas.drawText(key.label.toString(), key.x + (key.width/2), key.y + 25, paint);
        }
    }
}


собственно все просто
получаем канвас нужной клавиши в цикле и рисуем что хотим

Казахская клавиатура версия 2.0
play.google.com/store/apps/details?id=com.kazakhkey

Полный исходный код
yadi.sk/d/tJpV_20Q7C0Y6

15 комментариев

webman
Кстати очень даже симпатичное приложение.
Ссылка в посте думаю была бы не лишней
allasc
да действительно :) добавил
завтра ссылку на исходники выложу
yakooobin
Пролистал сейчас языки клавиатуры на своем аппарате и обнаружил, что в стандартной клаве есть киргизский, а казахского нет.
В чем логика пока не понял. Наверно в том, что Киргизия уже наполовину американская колония. т.к. там тусуются американские войска и много американцев проживает. Фиг знает.
А может потому что Киргизия «более развитая страна».
talgautb
скорее всего у тебя аппарат не предназначен для Казахстана, или я что-то перепутал))
yakooobin
А че Самсунга, продаваемого в Сулпаке есть кз по умолчанию разве?

Кстати у тебя на айфоне по умолчанию кз стоит?
izbai
у всех самсунга (ос андроид) который я видел казахский есть. Может у вас другой регион
allasc
судя по тому как качают (80-100 установок в день из них примерно 93% Казахстан) не у всех
самсунги — больше половины
talgautb
просто есть:
— т.н. «белые» — официально ввезенные в страну, для который они были сделаны (поэтому для Казахстана, язык казахский и клава на казахском обязательны)
— «серые» — официальные телефоны, но для др страны (вот тут языка может и не быть)
может утрирую, но как то так)
allasc
ну это понятно

еще российская диаспора (которые пользуются кирилическим казахским алфавитом)
третий по величине этнос России примерно в 600 тыщ человек
примерно 7-10 установок в день с российского сектора… ну с казахским языком в России все плохо :) я вообще удивлен что качают
izbai
нет казахский есть, но на стандартном клавиатуре на каз яз. печатать не удобно
allasc
к сожалению живу не в Казахстане (я из российских казахов)
не имел счастья видеть стандартную :) надеюсь моя не не хуже :)

вообще начал копать этот вопрос, потомучто на маркете только одна каз.клавиатура была… и то платная! красивая конечно но платная
вообщем появилась идея, нужна бесплатная
talgautb
Кстати у тебя на айфоне по умолчанию кз стоит?
ну, как бы iphone в Казахстане официально не продают :) так что…
allasc
и отдельно клавиатуру разработать и опубликовать под АйФон, насколько я понял, нельзя
только в виде какихто примочек, надстроек и добавок
вообщем низкого мнения я об этой конторе
kschingiz
«Киргизия уже наполовину американская колония» слышится более правдоподобно, чем «Киргизия «более развитая страна»
allasc
Исходный код (добавил в шапку)
yadi.sk/d/tJpV_20Q7C0Y6

знаю что дизайнер я никакой, может ктонибудь красивее нарисует… дорисует… и даже бесплатно выложит
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.