यह स्पष्ट नहीं है कि आप एक कस्टम कीबोर्ड कैसे बनाएं या नहीं। यदि आप नहीं करते हैं, here's एक छोटी डाउनलोड करने योग्य प्रोजेक्ट जो कस्टम संख्यात्मक कीबोर्ड बनाता है। कस्टमकिबोर्डबोर्ड कक्षा में या अपनी खुद की कस्टम कीबोर्ड कक्षा में, निम्न विधि जोड़ें। यह ऑन ड्रा() विधि को ओवरराइड करता है और कोड 7 के साथ परिभाषित कुंजी की पृष्ठभूमि खींचता है (इस मामले में "0") लाल और अन्य सभी चाबियां नीली होती हैं।
@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% पारदर्शी वर्ग छवियों का उपयोग नहीं किया था और एक प्रभाव जहां मौजूदा बटन केवल रंग से रंगा हुआ कर रहे हैं हासिल की मैं चाहता था। अधिक कस्टम परिणाम प्राप्त करने के लिए, मैं अपने ड्रॉबल्स 9-पैच छवियां बना सकता हूं और निम्न कार्य कर सकता हूं। ध्यान दें कि आइकन के साथ दो कुंजियां सही ढंग से प्रस्तुत नहीं होती हैं क्योंकि उन्हें 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);
}
}
}
आप लिंक का अनुसरण उल्लेख कर सकते हैं 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