First of all, I am not a developer. But I am trying to figure how this possibly trivial problem is resolved.
In many shipped Android tablets today, the landscape view is wrongly defined within Android as the portrait view, resulting in issues with many fullscreen applications.
For example, on a 800x480 screen:
800x480 is treated as portrait
480x800 is treated as landscape
When an activity is defined with android:screenOrientation="landscape" under Androidmanifest, this results in the breaking of certain apps due to layout issues of the app expecting landscape to be 800x480 when the screen only has 480x800 available.
This is apparently not an issue on certain tablets, such as the Archos 7 Home Tablet. I have not figured out how to solve this.
I believe this should be defined somewhere in the Android framework, but before I look through the hundreds of files there with my limited expertise, I thought I would be able to ask someone here.
Where would I try to change this? If someone knows the exact file or files, please advise.
My target Android tablet is a Rockchip RK2808a platform running Android 1.5, which already has issues running a 800x480 as it is. I am not sure if this affects more Android tablets, but I have seen this issue in at least the typical Telechips TCC8902 configuration as well as the OMAP 3530 configuration on 800x480 screens, on Android 2.1.
After this change, I am aware that the rotation definitions may have to be modified under PhoneViewManager and WindowOrientationListener to redefine the rotation behavior.
Related
Hi, please tell me if there is a way to make the message boxes and windows (of course some of them are outside the screen area) to force to display in screen area, not to have a part of window outside screen.
The display driver is ddi.dll.
Thanks for your help.
Unless its your windows (from your own app) no.
ddi.dll is the generic name for WM / CE display driver so it tells us nothing of the device.
If you describe your problem in more details, like the exact device, the apps that do not display properly etc. perhaps someone will be able to help.
Ok, the device is a pna running win core 5.0. Apps. that are outside are using gdi (apps which use gx are displayed normally thanks to gapi 4.0), but the others designed for 230x320 are outside (the device has display 320x240).
Ok, I think I understand what you are trying to do - you "opened" a PND and are trying to run PPC apps on it right?
Unfortunately, currently there is no way to help apps that can not adjust to screen resolution by themselves.
PNDs are intentionally limited in features and screen rotation option was removed from the driver.
Unless a program was written to take in to account the screen size (many PPC programs were not) there is no way to force it to the right resolution.
And even if it could be done (there is a theoretical way) it will always be buggy and unstable.
So I have been messing around with windows mobile development (in vb, don't hate me, i have grown accustomed to vb because of work). Anyways I come to a point where i would like to use the graphics object to draw an image and rotate it on occasion based on the state of the program. My instincts told me to use System.Drawing.Drawing2D.Matrix object to create that rotation but as it turns out it appears .net compact framework doesn't support that object.
So my question then is, is there any other method for rotating an image as i draw it. I can program in other languages as well if that is what is required, I was really only using vb because it was easy.
Any ideas?
Thanks
don't know about vb but
in c# i would look for an event to subscribe to
which would be fired when the orientation changed
or the resolution changed or some control resized
Sorry the question isn't related to orientation or resolution. I know when I want to rotate the image.
I will give more information, the image is a compass and I want to rotate the compass image based on GPS data received (Calculating the angles is not the problem either). Once I know that say I am 10 degrees off of north, i want to rotate the image of the compass so that north is still pointing north.
In my desktop development this would be done in vb or c# using the System.Drawing.Drawing2D.Matrix class, using Matrix.Rotate and them applying that matrix to the graphics object before i draw the image using graphics.drawImage().
Now the problem comes when I move to the mobile platform where System.Drawing.Drawing2D.Matrix does not exist and is appariently unimplemented. So then my question is, are there any other API's on the Windows Mobile Platform that support Rotation of an image by an arbitrary angle, and if not does any one have any good ideas where to start looking for implementing the rotation manually myself.
Thanks in advance
That's one of the annoyances with the .NET compact framework, not all of the PC .NET framework is implemented, and sometimes it's the bit you really want.
Time for a different angle on the problem. Create 36 compass images 10 degrees apart and store them all in an ImageList object. Pull the one you require out of it when the heading changes. Not quite as elegant as the Matrix class, but it may have to do.
The other approach would be to use DirectX drawing. The coding to do it, would probably involve a very steep learning curve, but not having dabbled in this arena yet, I can't offer much help.
The ImageList object in the .NET compact framework does not support ImageList.Draw(), (darn!, see previous post), so you would have to create a PictureBox object or similar and use :-
PictureBox1.Image = ImageList1.Images;
Where i is the index of the image you want to use. (0 to 35)
Thanks for the suggestions, I did end up predrawing the images of the compass. At the moment I went ahead and made 360 images but I am surely going to cut that down quite a bit. The question then becomes smoothness vs space. But either way you shake it it is working.
Hi - first post on this site...
I've got a custom windows mobile application that is running well on many PDA's in the field - I had a Verizon HTC "Rafael - I believe" PDA dropped off on my desk and the user was complaining that all of the labels in the application were squished to half their intended size.
I did some digging and determined that there was more wrong with the presentation layer than just that - on this device.
Any picture box images are rendering at about 1/4 of their intended size and not all labels are rendering at half their programmed heights - only the dynamic labels (ie. labels displayed on the forms via code) were rendering at 1/2 of their intended heights...
As mentioned previously - this application is running great on devices like the Palm Treo, Samsung i### and many others...these devices are all running mobile 6.0 whereas this HTC that is screwed up, is on 6.1.
Does anyone have any ideas on this problem? Has anyone ever seen anything like this?
Thanks in advance!!!
- Rob.
I'm sure the vast majority of the users who frequent this section are familiar with Honeycomb's new 2D hardware accelerated graphics pipeline, replacing the older (and considerably slower) Skia 2D software-accelerated rendering engine.
Currently, to take advantage of the 2D Hardware Acceleration, each application must have the following in its AndroidManifest.xml:
Code:
<application android:hardwareAccelerated="true">...</application>
Additionally, the 2D HW Acceleration pipeline can be turned on and off for individual activities within each application:
Code:
<activity android:hardwareAccelerated="false" />
Furthermore, you can control the 2D acceleration on the window and view levels.
Unfortunately, the vast majority of applications have not added that flag. Romain Guy explained why he thought that it was a bad idea to have Android default to enabling the new pipeline, citing custom drawing code as a concern. I'd still like to give it a whirl.
Romain Guy said:
It is not turned on by default for compatibility reasons. Not 100% of the Canvas API is supported when turned on (although the missing parts are very few and rarely used) and there might be bugs in the new implementation. There are also new constraints (for instance if you try to draw a bitmap larger than the maximum OpenGL texture size, it will fail.)
The new rendering pipeline also uses native display lists for each View, which triggers bugs in some apps. For instance, if a View relies on its parent to invalidate() to redraw itself, it's a bug in the app, but it "works" without hardware acceleration. It will however not work with hardware acceleration on.
Our goal is to make hardware acceleration on by default as soon as possible but we do not want to break apps. That said, apps using standard views and APIs should work just fine.
Click to expand...
Click to collapse
Does anyone have any idea as to whether a parameter could be modified on a system file in order to force all applications to behave as if they have the android:hardwareAccelerated flag turned on?
Thanks!
Yes. Mobile. Will explain later. And by yes I mean probably.
Let's pretend that the reader has never heard of "AndroidManifest.xml".
How are we supposed to know where it is and how to edit it? I've done a complete search of the tablet and it is nowhere to be found.
I am trying to enable hardware accel in MythFrontend.
Ultimate solution for browsing the "desktop" internet on mobile (dev help request)
Background:
Moto G 2013 running optimized rooted Lollipop 5.1.
Related tweaks:
ro.sf.lcd_density=240 set in build.prop (apparent screen size: 6"). UI Tuner installed.
On Chrome Dev 56.0.2900.3
data/local/chrome-command-line contents:
chrome --user-agent="Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2900.3 Safari/537.36"
Well my dears, lets see if I can wake up a bit of freakin' interest here :fingers-crossed:. As you may know and probably suffer, certain websites serve their content selectively by requesting the client's browser certain specific information, namely screen resolution and pixel density (dpi). In this way, sites can determine the actual screen size of the client and ta-da!: you receive a freaking zoomed-in, crippled pile of sh1tepage. Sorry if this sounds gross, grossman. :silly:
The classic solution I already am using, as you already know. Main problem is that, as a mobile user, I have to deal with how the System UI gets impacted by my dpi/resolution changes. What this chiefly means is that, as a user of a device deprived of physical navigation buttons/bar, if I reduce too much my dpi, at a certain point the system UI gladly decides that it is 0K to misuse one of the most precious resources in this age of stupid, fashionable 16:9 screens (sorry) by relocating the navigation bar "down there", taking up screen width and also completely pissing off (even more) the useable screen aspect ratio. Reducing the dpi actually makes using the device much better in general, as some of you may already know. However...
In order to ride the real thing on the browser, seems to me we need to address this problem, an this is where my developer help request comes in. Chrome, and other browsers, serve our device's dpi setting at the will of requesting sites, is this right? Thus, I've thought some sort of small application/service could be made in order for it to fake our dpi setting to the whatever thing which requests it, and maybe also fake our actual resolution (sorry, already tried the per app settings in UI Tuner: doesn't works without screwing up the whole shebang -system UI- :silly.
Does all of this sounds right? Of course, with regards to how certain system stuff works I am making certain presumptions which may be wrong, yet I'm sure something nice can be done.
I'd gladly like to hear from you, comrades. Android FTW! :victory:
Cheers