カスタムキーボードの作成方法を理解しているかどうかは不明です。あなたがそうでない場合は、here's小さな数字のキーボードを作成するダウンロード可能な小さなプロジェクト。 CustomKeyboardViewクラスまたは独自のカスタムキーボードクラスに、次のメソッドを追加します。これはonDraw()メソッドをオーバーライドし、コード7(この場合は "0")の赤と他のすべてのキーが青で定義されたキーの背景を描画します。この場合
![tinted keys](https://i.stack.imgur.com/tbP79.png)
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
List<Key> keys = getKeyboard().getKeys();
for (Key key : keys) {
if (key.codes[0] == 7) {
Log.e("KEY", "Drawing key with code " + key.codes[0]);
Drawable dr = (Drawable) context.getResources().getDrawable(R.drawable.red_tint);
dr.setBounds(key.x, key.y, key.x + key.width, key.y + key.height);
dr.draw(canvas);
} else {
Drawable dr = (Drawable) context.getResources().getDrawable(R.drawable.blue_tint);
dr.setBounds(key.x, key.y, key.x + key.width, key.y + key.height);
dr.draw(canvas);
}
}
}
、私は9-パッチ画像が、ちょうどいくつかの簡単な50%の透明正方形の画像を使用して、既存のボタンは、単に色で着色されている効果を達成していなかった私欲しかったもっとカスタムの結果を得るために、私はdrawableの9パッチイメージを作成し、以下を実行することができました。アイコン付きの2つのキーは、9パッチイメージとして定義されていないため正しく表示されないので、この例ではスケールアップするために特別な努力をしませんでした。私はまた、キーのさまざまな状態に対して異なるイメージ/エフェクトの使用に対処していませんでした。他の人はそれを行う方法を示しています。
@Override
public void onDraw(Canvas canvas) {
// super.onDraw(canvas);
List<Key> keys = getKeyboard().getKeys();
for (Key key : keys) {
if (key.codes[0] == 7) {
NinePatchDrawable npd
= (NinePatchDrawable) context.getResources().getDrawable(R.drawable.red_key);
npd.setBounds(key.x, key.y, key.x + key.width, key.y + key.height);
npd.draw(canvas);
} else {
NinePatchDrawable npd
= (NinePatchDrawable) context.getResources().getDrawable(R.drawable.blue_key);
npd.setBounds(key.x, key.y, key.x + key.width, key.y + key.height);
npd.draw(canvas);
}
Paint paint = new Paint();
paint.setTextAlign(Paint.Align.CENTER);
paint.setTextSize(48);
paint.setColor(Color.GRAY);
if (key.label != null) {
canvas.drawText(key.label.toString(), key.x + (key.width/2),
key.y + (key.height/2), paint);
} else {
key.icon.setBounds(key.x, key.y, key.x + key.width, key.y + key.height);
key.icon.draw(canvas);
}
}
}
![replaced keys](https://i.stack.imgur.com/TVrRz.png)
あなたは以下のリンク 1. [リンク1] [1] 2. [リンク2] [2] [1]参照することができます。http: //stackoverflow.com/questions/15789997/how-to-change-background-color-of-key-for-android-soft-keyboard [2]:http://stackoverflow.com/questions/18180136/how - 背景 - 色 - または - キーのテーマ - 動的 - 私は変化するn-custom-keyboard-a – ashishmohite