Android SDK Custom Keyboard, setting background and text colors: of a single key -


here code:

public class customkeyboardview extends keyboardview {

    public customkeyboardview(context context, attributeset attrs) {         super(context, attrs);     }       @override     public void ondraw(canvas canvas) {         super.ondraw(canvas);          paint paintbackground = new paint();         paintbackground.settextalign(paint.align.center);         paintbackground.settextsize(48);         paintbackground.setcolor(color.yellow);           list<key> keys = getkeyboard().getkeys();         for(key key: keys) {             if(key.label != null && key.codes[0] == 110)                 canvas.drawrect(key.x, key.y, key.x+key.width, key.y+key.height, paintbackground);                  paintbackground.setcolor(color.white);                 canvas.drawtext(key.label.tostring(), key.x + (key.width / 2),                         key.y + (key.height / 2), paintbackground);          }     }   } 

the strange thing if comment out canvas drawrect or canvas drawtext, other 1 works fine, if leave them both in, error:

        fatal exception: main process: com.alpha.alphaproto, pid: 6540     java.lang.nullpointerexception         @ com.alpha.alphaproto.customkeyboardview.ondraw(customkeyboardview.java:48)         @ android.view.view.draw(view.java:14465)         @ android.view.view.getdisplaylist(view.java:13362)         @ android.view.view.getdisplaylist(view.java:13404)         @ android.view.view.draw(view.java:14182)         @ android.view.viewgroup.drawchild(viewgroup.java:3103)         @ android.view.viewgroup.dispatchdraw(viewgroup.java:2940)         @ android.view.view.getdisplaylist(view.java:13357)         @ android.view.view.getdisplaylist(view.java:13404)         @ android.view.view.draw(view.java:14182)         @ android.view.viewgroup.drawchild(viewgroup.java:3103)         @ android.view.viewgroup.dispatchdraw(viewgroup.java:2940)         @ android.view.view.draw(view.java:14468)         @ android.widget.framelayout.draw(framelayout.java:472)         @ android.view.view.getdisplaylist(view.java:13362)         @ android.view.view.getdisplaylist(view.java:13404)         @ android.view.view.draw(view.java:14182)         @ android.view.viewgroup.drawchild(viewgroup.java:3103)         @ android.view.viewgroup.dispatchdraw(viewgroup.java:2940)         @ android.view.view.getdisplaylist(view.java:13357)         @ android.view.view.getdisplaylist(view.java:13404)         @ android.view.view.draw(view.java:14182)         @ android.view.viewgroup.drawchild(viewgroup.java:3103)         @ android.view.viewgroup.dispatchdraw(viewgroup.java:2940)         @ android.view.view.draw(view.java:14468)         @ android.widget.framelayout.draw(framelayout.java:472)         @ com.android.internal.policy.impl.phonewindow$decorview.draw(phonewindow.java:2326)         @ android.view.view.getdisplaylist(view.java:13362)         @ android.view.view.getdisplaylist(view.java:13404)         @ android.view.hardwarerenderer$glrenderer.builddisplaylist(hardwarerenderer.java:1570)         @ android.view.hardwarerenderer$glrenderer.draw(hardwarerenderer.java:1449)         @ android.view.viewrootimpl.draw(viewrootimpl.java:2377)         @ android.view.viewrootimpl.performdraw(viewrootimpl.java:2249)         @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1879)         @ android.view.viewrootimpl.dotraversal(viewrootimpl.java:996)         @ android.view.viewrootimpl$traversalrunnable.run(viewrootimpl.java:5600)         @ android.view.choreographer$callbackrecord.run(choreographer.java:761)         @ android.view.choreographer.docallbacks(choreographer.java:574)         @ android.view.choreographer.doframe(choreographer.java:544)         @ android.view.choreographer$framedisplayeventreceiver.run(choreographer.java:747)         @ android.os.handler.handlecallback(handler.java:733)         @ android.os.handler.dispatchmessage(handler.java:95)         @ android.os.looper.loop(looper.java:136)         @ android.app.activitythread.main(activitythread.java:5001)         @ java.lang.reflect.method.invokenative(native method)         @ java.lang.reflect.method.invoke(method.java:515)         @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:785)         @ com.android.internal.os.zygoteinit.main(zygoteinit.java:601)         @ dalvik.system.nativestart.main(native method 

i'm mystified. appreciated.

this modification. above code doesn't work in either case. here code either drawtext or drawrect work, not together:

    paint paintbackground = new paint();     paintbackground.settextalign(paint.align.center);     paintbackground.settextsize(48);     paintbackground.setcolor(color.yellow);      paint paint = new paint();     paint.settextalign(paint.align.center);     paint.settextsize(48);     paint.setcolor(color.black);      list<key> keys = getkeyboard().getkeys();     for(key key: keys) {         if(key.label != null && key.codes[0] == 110)             //canvas.drawtext(key.label.tostring(), key.x + (key.width/2), key.y + 25, paint);             canvas.drawrect(key.x, key.y, key.x+key.width, key.y+key.height, paintbackground);             canvas.drawtext(key.label.tostring(), key.x + (key.width / 2),                     key.y + (key.height / 2), paint);      } 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -