Hi,
I have a view which basically cover the full screen to capture key
input. It works well if I add it to activity, but if I display it from
background service using WindowManager.addView, it doesn't work.

Another quesiton is why onKeyDown/onKeyUp doesn't work? As you see I
have to use  setOnKeyListener(mkeylistener);

====================
class myView extends TextView {
            private Paint mLoadPaint;
            private final String TAG="HUDView";

            OnKeyListener mkeylistener= new OnKeyListener(){
                public boolean onKey (View v, int keyCode, KeyEvent event){
                        Log.d("mkeylistener", "onKey:"+keyCode
+":Keyaction:"+event.getAction());
                        return true;
                }
            };
            public myView(Context context) {
                super(context);
                //Toast.makeText(getContext(),"HUDView",
Toast.LENGTH_LONG).show();

                mLoadPaint = new Paint();
                mLoadPaint.setAntiAlias(true);
                mLoadPaint.setTextSize(10);
                mLoadPaint.setARGB(255, 255, 0, 0);
                setOnKeyListener(mkeylistener);
                setFocusable(true);
                setFocusableInTouchMode(true);
                this.setText("TEST");
                this.setLayoutParams(new
LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
                setOnFocusChangeListener(new View.OnFocusChangeListener(){

                                @Override
                                public void onFocusChange(View arg0, boolean 
arg1) {
                                        // TODO Auto-generated method stub
                                        Log.d(TAG, arg0.toString()+":"+arg1);
                                }

                });
            }
            @Override
            public boolean onKeyUp (int keyCode, KeyEvent event){
                Log.d(TAG, "onKeyUp:keyCode"+keyCode);
                return true;
            }
            @Override
            public boolean onKeyDown (int keyCode, KeyEvent event){
                Log.d(TAG, "onKeyDown:keyCode"+keyCode);
                return true;
            }
            @Override
            protected void onAttachedToWindow (){
                Log.d(TAG, "onAttachedToWindow");
                requestFocus();
            }
            @Override
            protected void onDraw(Canvas canvas) {
                super.onDraw(canvas);
                //canvas.drawText("Hello World", 5, 15, mLoadPaint);
            }

            @Override
            protected void onLayout(boolean arg0, int arg1, int arg2, int
arg3, int arg4) {
            }

            @Override
            public boolean onTouchEvent(MotionEvent event) {
                //return super.onTouchEvent(event);
                Toast.makeText(getContext(),"onTouchEvent",
Toast.LENGTH_LONG).show();
                Log.d(TAG,String.format("top:%d,bottom:%d,left:%d,right:%d",
this.getTop(),
                                
this.getBottom(),this.getLeft(),this.getRight()));
                Log.d(TAG,"ontouch, is focused?"+this.isFocused());
                testactivity.this.finish();
                return true;
            }
 }

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to