Android :: OpenGL Key Frame Animation - The Best Approach
Dec 29, 2009
I'm trying to animate object. I use keyframe animation: I have two vertex buffers (two frames) with vertices of my object - first buffer is for object start state and second for end state. To transform the object I simply use linear interpolation. To make it more clear, please take a look at the code snippet:
CODE:..................
As you can see I actually use one more buffer. vertexBuffer_motion is the one I use to draw my object in intermediate state.
Time for my question. What is the best approach for such keyframe animation on android? Can I somehow avoid (quite time consuming) operations of calculating and copying new state of all vertices to vertexBuffer_motion?
I know I could use VBO but still, I would have to prepare this vertexBuffer_motion and use glBufferData to set data to this VBO (or not?). provide me with some code example showing the best approach for keyframe animation on android?
View 1 Replies
Feb 18, 2010
I've created an application that show around 250 images in ImageView. Images are loaded one after another, 15-30 images per second. Basically the whole thing gives an illusion of a rotating 3D object, at least it should.
The problem is next, app hangs when loading certain images(i.e. I see a few seconds of fluid animation and then animation hangs, jump 10-15 frames(images) ahead and continues. It always happens at the same places in animation cycle.
I though that Android might not have enough resources to handle something like this, so I've resized images to half their size, but it did't help. I've tried buffering images but that did't help either(actually, maybe a little, I think that animation looks a little bit smoother).
And now the weirdest thing. I use the touch screen to allow users to "rotate" the 3D object on those images, and while rotating I again experience those hangs at exactly the same places as with the animation.
All images are in .png format and their size vary from 15kB to 40kB.
I use the following code for the animation:
CODE:.....................
View 1 Replies
View Related
Nov 17, 2010
I'm fading out an imageview with alpha animation. I'd like the image to stay transparent after the animation. Tried with different combinations of fillAfter and fillEnabled, no luck. How can this be achieved?
View 1 Replies
View Related
Jul 29, 2010
Is it possible in Android to get a callback when a Frame Animation (AnimationDrawable) has completed playing its frame sequence? I know when a Tween Animation has completed, it calls onAnimationEnd(), but is there something similar for frame by frame animations?
View 1 Replies
View Related
Jan 29, 2009
I've been playing with OpenGL but am unable to get a steady framerate due to GC. When rendering 100 tiles each frame (in ortho mode), the GC needs to recover ~22000 objects every 3 seconds or so. Each collection is taking around 110 ms. Of course this means quite a framerate dip.
... D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 113ms D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 113ms D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 113ms D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 114ms ...
The rendering loop I tested with is not making any objects and is very simple;
while (super.running) { gl.glClear(GL10.GL_COLOR_BUFFER_BIT); gl.glBindTexture(GL10.GL_TEXTURE_2D, tex); for(x = 0 ; x < 100; x++) { gl.glVertexPointer(2, GL10.GL_FIXED, 0, tileCoords[x]); gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, tileTexCoords[x]); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4); } egl.eglSwapBuffers(dpy, surface);
View 4 Replies
View Related
Jul 5, 2009
i'm doing some experiments with OpenGL using the GLSurfaceView introduced in 1.5 In my Renderer I keep track of the time spent to render the last frame and pass this value to the method that update my model. The goal is to keep objects movements on the screen independent from the rendering time. Now this seems to work perfectly in the emulator, but on the real device is at least 4/5 times slower! Has anyone experienced the same problem? Or, anyone has a clue of what I'm doing wrong? Here's pieces of the code I'm using
View 3 Replies
View Related
Mar 22, 2010
I have a problem with a suddenly dead(?) OpenGL Thread. After an indeterminate time (30 seconds to a couple of minutes) the onDrawFrame of the Renderer simply doesn't get called anymore. I get no exception, no ForceClose, no ActivityNotResponding, no nothing! I can still open the Menu, have another Handler/Runnable-cycle logging out "Alive", etc Recently I introduced some native stuff (physics-library). But I can verify that there is no native problem, as there is obviously no native crash and after the GLThread died, I can still do like: Log.d("Before native call") nativeCall(); Log.d("After native call") Maybe anyone of you experienced something similar to this?
View 4 Replies
View Related
May 19, 2010
How do i pause frame animation using AnimationDrawable?
View 1 Replies
View Related
Aug 6, 2010
Does anyone know if it is possible to apply a frame animation (using an AnimationDrawable) onto a custom button or a toast view? I have posted these questions on Stackoverflow but have received no responses and very few views so I thought perhaps posting to this forum would be a better route. Let me know if this "double posting" is bad form.
View 4 Replies
View Related
Mar 23, 2009
I am using frame animation in multiple page where in each page i am using set of png files. First animation is working fine but when i am trying to call second animation it showing
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Is there any way to solve this issue.
View 6 Replies
View Related
Apr 14, 2010
I am using a simple frame animation and when I exit and reenter my activity the activity is still referenced in memory.
//This is a sample activity I created to simulate the problem public class MemoryLeakActivity extends Activity {
@Override public void onCreate(final Bundle savedInstanceState) super.onCreate(savedInstanceState);
} @Override public boolean onKeyDown(final int keyCode, final KeyEvent event) {
final Intent i = new Intent(MemoryLeakActivity.this, LeakyActivy.class);
startActivity(i); return super.onKeyDown(keyCode, event);
} }
View 3 Replies
View Related
Aug 6, 2010
Is it possible to create a custom button in Android, where the button is idly animating using a frame animation (AnimationDrawable)?
View 1 Replies
View Related
Feb 1, 2010
I am drawing a pretty simple scene, with one large texture the about size of the screen (two triangles). I notice that the frame-rate is irregular: in most of cases, a frame finishes in 17 ms. However, in about 1 of 10 times, the frame finishes in 33ms.
My guess is probably some background services need to run. However, the Linux scheduler is biased towards my FG app, so the BG services are usually starved, until they can't take it anymore and they grab the CPU from my app ....
I am seeing stuttering in the animation. Is this due to the irregular frame rate? Should I delay each frame so that all frames are rendered with 33ms frame time? If so, what's the best technique of achieving this?
Is there an API that I can call to guarantee CPU resources for the render thread .... I really hope Android runs on some sort of real time kernel ...
View 7 Replies
View Related
Jul 22, 2010
In a nut shell, when the app is loaded, it will play a short movie (maybe a few seconds at most @ 12-24fps). I will then have 2 buttons displayed on the screen, and depending on what button is pressed, it I will play another short movie (5-10 seconds). While waiting for the user to make a decision, the movie will be looping.
The movie source is stop-motion photography so it's already chopped up into frames. My question here is if I should use a Frame Animation technique, or if I should use a Movie player for this. All in all perhaps there's less than 100 still frames that make up the stop-motion. I was going to go the Frame Animation route, but I wasn't sure if having so many individual frames would kill the app so I thought I'd post here to see if anyone had any insight.
View 1 Replies
View Related
Dec 18, 2009
I would prefer to not have to purchase a Flip Video Recorder to provide me the frame by frame playback needed (coaching girls softball) for instant instruction at practice. Is there an app that provides playback of video at a frame by frame rate?
View 1 Replies
View Related
May 19, 2012
I'm trying to build a live wallpaper using frames. I can't find any good tutorials on how to even build a live wallpaper. When I run app from eclipse i get these errors.
[2012-05-19 22:26:32 - LiveWallpaper] No Launcher activity found!
[2012-05-19 22:26:32 - LiveWallpaper] The launch will only sync the application package on the device!
It does install to the emulator. It all seems to work. I go in to the live wallpaper menu, find my live wallpaper in there open it, it loads. but its not moving through the frames. It only shows the last frame. I set it as wallpaper. It also doesn't do anything. Also would like to center the images.
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.service.wallpaper.WallpaperService;
import android.view.SurfaceHolder;
[code]...
View 3 Replies
View Related
Feb 25, 2009
Single Threaded OpenGL game ! (check bottom, you can download and use the helper class) Lighting disabled ! Depth Buffer disabled ! Culling enabled ! Textures disabled !
Just 176 integers (x,y values only) making 88 vertexes along with 132 index numbers making "44 triangles only"
Framerates I get is
with GL_BLENDING disabled - 145 fps approx only! enabled - 110 fps approx only!
I have the screenshot of exact code in the draw function here.. just 2 damn lines ! I have hidden only the comments.. click here to see it http://prasna991.googlepages.com/drawframe.png
variable details in the 2 lines of code =========================== ipts = 176 elements (only x and y for each vertex) totallinetriangles * 3 = 176 lineindexes = 132 elements - type "short"
Here is the screenshot of output drawing and how it will look like http://prasna991.googlepages.com/screen.png
OpenGL single threaded Initialization Helper ================================ Here is my OpenGL helper class.. makes the OpenGL initialization for newbies a cakewalk http://prasna991.googlepages.com/OpenGLHelperclass.txt
I tested by rendering on the touch event only.. frame rate drops only when u touch and drag and here I have just tested by tapping and releasing gently on the emulator and on the device
Is this the device limitations ? So graphics is actually a lot lot lot slower than on iPhone ?
View 8 Replies
View Related
Jul 24, 2010
I would like to be able to use the OpenGL API from both Java and C (via NDK).
In Java, there is a GL object passed, which has all GL methods on it.
In C, you just talk to the native library.
In a single onDrawFrame callback (for which Java is passed a GL), can I use methods on the GL object, and also call NDK methods which access the openGL library?
In other words, is the GL object just a wrapper for the same instance of the native library?
View 3 Replies
View Related
Aug 30, 2010
I have a strange issue - from time to time the animation that should fade out my control (ImageButton) does not kick in immediately. I am using the fadeout animation to hide it and then in myListener on its end (onAnimationEnd) I put new resource as the image on the button.
Somewhere in my app code:
Animation a = AnimationUtils.loadAnimation(this,R.anim.fadeout); a.setAnimationListener(new myListener(location)); buttons[location].setAnimation(a); a.startNow(); // regardless if its start() or startnNow() it will work in most of the cases but not 100% reliable I actually can see in debug Log when its late, happens after few more clicks
Then in myListener.onAnimationEnd(Animation a):buttons[location].setImageResource(R.drawable.standard_button);
Seems there is a rule that the every 4th or 5th animation does not start ...
View 1 Replies
View Related
Dec 23, 2009
In my application I have three buttons that are to be part of each and every activity. These button are independent of each other and on click do mutually exclusive things(say launch different activity). So, in my layout XML for every screen I have a <Linear Layout><Button/><Button/><Button/></Linear Layout> element.
View 2 Replies
View Related
Oct 11, 2010
I'm navigating through a 3-level hierarchy of names to get to a document view page. I've set up tabs for the 3 levels. The tabs are left, middle, and right where the right tab is the lowest level of the hierarchy. Each tab has a list of 10 to 20 Radio Buttons with the names. This all works great and is very efficient and intuitive. One note is that there may be 1000 documents available (from an online source) but the average user will only be viewing a handful regularly. So I store the choices for each of the 3 tabs. This way a user can quickly navigate to his favorite without having to negotiate the entire hierarchy each time. My question comes when the user is on the right tab. At this point they have navigated through to the document they want and I'm wondering what is the best way to initiate the document view page. Remember that most of the navigation happens on the right tab in the small set of documents the user regularly visits, with only occasional visits to the other tabs. So making the right tab efficient is good. My current approach is to add a LongClickListener to the buttons of the right tab. Then a press-and-hold kicks off the document view. This certainly minimizes the number of objects on the screen and the number of separate clicks required to get to the document but I question whether new users will know that a long press is expected. I guess I could put up some Toast if the user doesn't do anything for 5 seconds but that still seems clunky. Another approach is to add a Button at the top of the right tab Radio Buttons. This has the merit of being dead obvious but it's a less efficient use of screen space and also an extra click for an experienced user.
View 9 Replies
View Related
Jul 12, 2010
I am required to work on an application which is be deployed on devices running Android 1.5. The application is supposed to maintain a connection with a server and regularly poll it for new data. The server will notify the client of new data following which the client will connect to the server and download the data.I know that ideally a push based approach will be more conducive here given that we are to run this on a mobile platform. Also, from Android2.2 there is going to be support for C2DM(Cloud to Cloud device Messaging) but as already mentioned this application is for devices running Android1.5.Implementation: I was thinking of using AlarmManager which would Broadcast Intents periodically(poll interval), The Broadcast receiver will then try to connect to the remote server and make data changed check. If the server has an update, the thread will connect to the remote server and download the data from the server.
Problem and Issues: 1. Is this the right way to approach the problem? 2. Is AlarmManager reliable? Would it remember Alarms after a device boot? (I think it does) 3. How do I ensure that battery usage is kept at minimum.(I have heard something about using "keep-alive" to sustain the session for longer time..what is this legend?) 4. What are other things that I need to consider? I am sure I must be missing lots of things here.
View 8 Replies
View Related
Nov 24, 2010
I am looking to create an Android application that uses Tabs.
Requirements
- When a user selects a tab and gets back to the same tab, there shouldn't be a loading period (preferably).
- Each tab will contain a listview.
- In one of the tabs, I will have to use subtabs. And that's it.
One great example I really liked (although I didn't try the app) is
http://www.usatoday.com/android/.
View 2 Replies
View Related
Aug 30, 2010
I have a general Android design question around data access. I have a number of activities in my application that need to access a SQLite database. In order to wrap up all data access logic in one place I have created a DatbaseHandler class that takes care of all data access logic. This class takes care of building up where clauses, calling the database and interrogating the resulting cursor to retrieve the query results and return them to the caller. The purpose of this class is to wrap all data access code in one place so that it can be easily managed and maintained as opposed to having data access logic scattered across all activities. Each activity that needs access to the database creates an instance of this DatabaseHandler class and passes it a reference of android.content.Context. The DatabaseHandler class then uses this Context object to call an underlying content provider as follows context_i.getContentResolver().query(...).
My data access logic (cursor handling logic to be specific) is not in the activity and so I cannot manage the cursors life cycle, therefore there is likely to be memory leaks.
My questions are as follows -
How can I (if its even possible) manage the cursors life cycle from outside an Activity? Should each activity even be creating an instance of this data handler class and passing an instance of Context to it? Perhaps my design approach is wrong and I should expose these data access functions as static methods that take an instance of the calling activity as a parameter. That way I could perform managed queries and let the activity take care of managing the cursors life cycle?
View 1 Replies
View Related
May 8, 2010
I've recently knocked up a server/client app for Windows & Android that allows one to send a file from Windows to an android phone over a socket connection. It works great for a single file but trying to send multiple files over in a single stream is causing me problems. I've also realised that aside from the binary data, I will need to send messages over the socket to indicate error states and other application messages. I have little experience with network programming and and wondering what is the best way forward.Basically the C# server side of the app just goes into a listening state and uses Socket.SendFile to transmit the file. On Android I use the standard Java Socket.getInputStream() to receive the file. That works great for a single file transfer, but how should I handle multiple files and error/messaging information? Do I need to use a different socket for each file? Should I be using a higher level framework to handle this or can I send everything over the single socket? Any other suggestions for frameworks or learning materials?
View 1 Replies
View Related
Jul 29, 2010
I'm working on an app that is meant to be used by fans of a sport team. In the future, I expect to use the same app but for any different team. So, what changes would be the colors, team logo, app name and the like. So, is there any technique that allows me to build binaries for different teams without having duplicated resources?
View 4 Replies
View Related
Aug 18, 2010
I used Eclipse with the Android SDK to develop the original application. I ask since this was my first Java (and Eclipse, and Android, and XML) project. I assume that most of the Java should run on the PC without too much trouble. I may want to restructure the code to isolate the Android specific functions. Should I stay with Eclipse or move to something like NetBeans?
View 3 Replies
View Related
Nov 23, 2010
In my Android application, it is noticed that when the device goes to sleep/standby WiFi is disconnected. When the device wakes up, it gets reconnected. Before making a httpClient.execute(..) call to remote server we check if the device is connected to n/w. When the data transfer is being done and if the device goes to sleep then Android runtime will switch to another medium for connectivity(3G,GPRS etc.)
Is the switch from WiFi to alternate cellular service say 3G, seamless? How do I wait for WiFi to become available again? Should I use Thread.sleep(delay) when the WiFi wakes up? I have seen broadcast actions when the WiFi state changes. In general, what is the ideal approach to handling WiFi disconnects in a mobile app?
View 1 Replies
View Related
Jul 23, 2010
For my first application, the only testing I've really done to this point is on my Droid X. I want to think through the various hardware differences and come up with a testing plan that is representative of the Android landscape. My initial thought is to create a list of emulators that have unique qualities such as screen size and SDK levels. I've noticed very quickly how the UI of my application will need some adjustment when viewed on devices that don't carry a 4.3" screen. How have you approached this hurdle in your own development? Chris Stewart cstewart...@gmail.com http://www.androidsdkforum.com *Want to advertise your Android application for free? Email me for details!*
View 9 Replies
View Related
Nov 2, 2009
I'm a total newbie to Android (and to Java in general... mostly a PERL/ PHP guy here...), so forgive me if I use the wrong terminology to refer to things... I have been asked by my company to implement an application for Android that allows a user to enter a note at the end of every call. E.g., either they or the other party hangs up, immediately a notes area pops up with a "save" button and if they enter a note, the note is saved with a reference to the call log entry. As I understand it, onCallStateChange() will give a pretty good indicator of a hangup if the state has become Telephony Manager.CALL_STATE_IDLE. I've figured out how to do the UI part, how to save it in a database, etc... My question, however, is about how I implement this "listening" aspect of it. Should I have a service running all the time that has an instance of android.telephony.PhoneStateListener? If so, do I use the onBind or onStart method, and how do I make sure it doesn't go away when memory runs low? Or can I somehow attach the listener to this event, and then terminate? Or is a Broadcast Receiver the way to go?
View 16 Replies
View Related