2011-01-26 3 views

ответ

4

Я нашел ответ: Реализован OnDraw ...

@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    try{ 
    onBufferDraw(); 
    }catch(Exception ex){ 

    } 
    if (mBuffer!=null) 
     canvas.drawBitmap(mBuffer, 0, 0, null); 
} 
+0

Может ли быть лучший способ? Этот подход выглядит как слишком много работы и включает в себя модификацию большого количества частных vars/методов, которые могут легко ломаться в будущих версиях Android. Можете ли вы также пройти путь использования изображений через «keyIcon», поскольку он кажется более чистым? –

+0

@paul_sns Я хотел, чтобы был лучший способ, но теперь я привык к этому. Я не видел слишком много изменений в более новых версиях. – Heidar

+0

не могли бы вы продлить ответ, пожалуйста? Я совершенно не понимаю, как onDraw поможет изменить шрифт. – Raykud

1

Ну, это очень широкий вопрос. Я могу рассказать вам, как установить другой шрифт; как вы работаете в своем приложении с клавиатурой, зависит от вас.

Поместите шрифт (.ttf или .otf) в папку ваших активов, а также использовать следующий код (предполагая шрифт под названием «myfont.ttf» и TextView с идентификатором «ключ»):

Typeface myFont = Typeface.createFromAsset(getAssets(), "myfont.ttf"); 
TextView key = (TextView)findViewById(R.id.key); 
key.setTypeface(myFont); 

Напоминание: не забудьте проверить лицензию на шрифт, который вы используете. Большинство из них не допускают перераспределения без компенсации. Один свободно лицензированный шрифт, который вы можете использовать, это Bitstream Vera Sans.

+0

Спасибо за ответ, но я меняю образ SoftKeyboard, и у меня нет TextView для установки на него Typeface. У меня просто есть InputMethodService, Клавиатура, Ключ и KeyboardView. – Heidar

+0

Интересно. Да, изучая его больше, я не вижу * способа изменить его. Однако такие приложения, как SwiftKey, имеют разные шрифты для своих ключей, поэтому это возможно. К сожалению, у меня нет лучшего ответа для вас. – kcoppock

+0

Одним из решений является размещение изображения для каждой клавиши, но это требует много времени. В любом случае, спасибо, пожалуйста, скажите, нашли ли вы что-нибудь. – Heidar

4

Одним из решений является использование keboardView.java вместо android.inputmethodservice.KeyboardView.

Вам также необходимо изменить paint.setTypeface(Typeface.DEFAULT_BOLD) на paint.setTypeface(my font) и вы должны добавить attrs.xml к вашему проекту.

+0

Благодарим за помощь. – Heidar

+0

как добавить attrs.xml – Fay007

2

, если вы думаете, чтобы изменить стиль шрифта андроида ПОЛЬЗ.КНОПКИ клавиатуры стиль шрифта с внешним .ttf стиль шрифта, то вы можете проверить мой ответ на ссылку answer to change the font style of key label of android custom keyboard and also to change the font style throughout the android application

этот ответ проверяется мной лично, так вы можете доверять и проверять это.

Смежные вопросы