I would like to listen the slide IN/OUT event of the NOKIA devices(Touch + QWERTY Keyboard) in J2ME App. I need your inputs for the same. Do i need to follow complex implementation or is there any other way around?Will midpjni help?
For handsets with QWERTY and Touch screens, the QWERTY keyboard is exposed when it is slid out and the screen changes to landscape mode (from portrait). So you can detect the sizeChanged(width, height) call, detect that handset went into landscape mode and then handle it.
There is a problem with this approach, if the handset changes into landscape mode based on accelerometer calls then this is inconsistent as then it can go into landscape mode without the QWERTY keyboard being slid out.
So a seemingly good approach is just listen for slide IN/OUT event and handle it. So yours is a good solution. However if your app needs to work on Non-Nokia handsets who dont support slide IN/OUT events.
So, a generic solution would be
Handle portrait/landscape changes
based on sizeChanged call.
Make your key handling generic enough to
support Virtual keypad and also
QWERTY keyboard.
This may have been on tangent but hope it helps you understand this.
Related
I'm developing an app for iOS and Android using Corona SDK and have problems with managing native textFields in Android.
I'm trying to achieve the following effects:
tapping on textfield will animate its sliding with keyboard so it will be always on top of it while moving up.
Tapping on back button will dismiss the keyboard and slide textfield back with it
My problems are:
To know the height of the keyboard in order to know where to stop moving the textfield.
To catch back button tap in order to eliminate the textfield
What I am doing:
I've looked over the Internet to find out how to check keyboard height on Android. All solutions assume we have Activities.
We have registered onKey listener to catch back press in corona code, but it is not fired if keyboard shown.
Ok so I made this Draw & Guess Online game and I used Native TextFields as well. What I did is just set my device resolution to lets say 600x1024. Then I just tested on a few different devices, and just eyeballed where the keyboard was located. I'm afraid this is what your going to have to do. Just use a for loop to make around 10 small rectangles and print the pixel values next to each of them. Then take your test devices, and see where the keyboard lyes on each device. Then just animate them up.
There is no easy way to do it in Corona unfortunately. Also people could have custom keyboards which would make your life even more difficult. All I can recommend is to over estimate and release.
I basically need to find out if there is a way to capture movements or keystrokes of a game such as "Angry Birds" etc using the touch screen of an Android and save them to a file on the device.
I'm sure these phones have security issues and don't want native "keystroke logging", but if it's a layer that sits over the other game, it should be ok
Please let me is there any way to achieve the same. Your help would be appreciated. Thanks In Advance
You can cover the screen using a System Overlay, as shown in this answer.
However, keep in mind that either you can consume all the touch events, or you can let them through. You cannot first take the touch events, and then pass them onto the app or View below you.
Additionally, if the device has on screen system navigation buttons (home, back and recent apps) the overlay will not cover these.
I know this may not be an appropriate question, but I want to know how a touch enabled OS like
android detects a button in an app and calls the appropriate handler? When programming an app we just give the alignment information of a particular button. So, how android keeps the mapping between a button and screen position? I think this is kindof dynamic because if you change the screen orientation or use zoom or something like that the button positions are changed dynamically. So, android must look at the touch position and decide whether a button is there or not and call the appropriate handler. How this all things put together?
I appreciate any reply.
I've been working on a drum machine app, and the latency between the time you press the button and the time the sound plays is unbearable. I have seen some people use multitouch and gridviews, and make several buttons able to be pressed at the same time, but I honestly have no knowledge of those. How could I set up multitouch or gridviews to reduce the latency?
I would guess the multitouchable buttons are a very custom implementation. You won't ever be able to touch two ordinary buttons simultaneosly, since they are made for single touch and are based on focus gain etc.
Here's my idea behind a multitouchable implementation:
You create a very custom view which will draw all buttons you need. This view should override onTouchEvent and react on multitouch. I never tried that, but this is the only option I can think of.
I'm trying to develop a very specific app for my Dell Streak. I want the entire app to run landscape. The Streak has a tilt function that switches the whole OS to a landscape 800x480.
So I want to make an ADT to test in that uses an 800x480 display, but whenever I set the size I get no buttons. The Streak has a Home, Menu and Back button aswell as volume/mute and power, and I need to use some of them for my application.
P.S. I'm not worried about the tilting messing up my application. Not yet, anyway. Just need the test environment the right size and with buttons.
This is because you use non-standard (your own) resolution and there's no skin for that. You should provide your own skin in such a case.
But you don't really have to do that. If you want to have 800x480 you can use WVGA800 built-in skin when creating AVD (which is 480x800) and then use KEYPAD_7 or Ctrl-F11 and KEYPAD_9 or Ctrl-F12 to switch it's orientation to landscape. Then you get 800x480 with full keypad.
-
Besides you can always use keyboard of your PC or laptop to emulate emulator keys:
Home - HOME
Menu - F2 or Page-up
Back - ESC
Power Button - F7
Audio volume up button - KEYPAD_PLUS, Ctrl-F5
Audio volume down button - KEYPAD_MINUS, Ctrl-F6
-
for more see: Keyboard mapping