Say what you want about Live Wallpapers, but I found an App for Android called Chrooma, which I actually quite like.
https://play.google.com/store/apps/details?id=com.gamelounge.chrooma_lwp.android&hl=de&gl=US
The problem is, it's kinda outdated.
Even though it mostly works fine, it sometimes has some issues loading the shapes. Sometimes it just takes a while and you have an odd, uni-colored background. Sometimes the shapes are layered all in the same spot.
To me, it feels like the intro animation is causing some issues. It feels like it's "thinking" too long what it should do next/how to slide the shapes in. There is a setting inside the app to disable it, but it (sometimes) does it anyways.
So I was wondering...is there a way to remove those animations from the code completely?
But I've actually never touched Android apk before, so please talk slowly :D
Related
I do not know what could it be, but does not look like a performance issue (like doing too much work on the background) because there is no message on LogCat saying Slow measurement, Frames skipped or ConstraintLayout issues. The app animations work perfectly. But, unfortunately, all the clickable elements that I added on the xml:
android:clickable="true"
android:focusable="true"
android:foreground="?attr/selectableItemBackground"
are too slow. That slow, that whenever I click, instead of the smooth animation that moves and starts on the exact pixel I click on, it appears an awful shadow and remains like so for a while (~2 sec).
If it is indeed an android performance issue, how to debug it? Also, I do not know where to start and which information I need to add in order to add valuable information to this question but, if needed, please, ask for it and I will try to add as much information as possible.
The only thing I could say in advance is I am using MVVM and coroutines, so there is no performance issues on that matter, but maybe only UI related?
EDIT:
Samsung J2 Prime and Samsung Galaxy Note 3 work good, all animations are good (even though is a small and old device)
Motorola Zoom and Redmi Note 8 Pro are working with laggy animations (animations are meant only the clickable animation (Ripple effect), the ConstraintLayout animations are working smooth.
I was wondering if there was a way I can have part of my screen in android constantly display something, even something as simple as a piece of text or an image. I am fairly familiar with Android Development, so if there is a way to make an app that does that, it'd be great.
To be precise, I want the top third of my screen to stay constant, and the bottom two-thirds to work normally such that I can do anything I can normally do
Edit: I want the top third to display the constant text/image even if I exit the app. A widget is a good idea. I'll look more into that.
So I am building a rather complicated budget management application. I am still struggling with this problem though. I have seen apps like Yahoo!Weather utilizing huge high-resolution images as their activity backgrounds and their app runs smoothly. However when I assign an image file as an android:background to a View this makes the application lag out like nothing else. What is the way to work around this? (I assume there is one.)
Thank you in advance!
I am currently using Cocos2dx C++ version 2.0.1. I understand this is an older version of cocos2dx but I originally started using it and already made most of my game with it and I really would rather not switch versions at this time. The problem I am currently having is that my whole game has about 3 full songs, 6 sound effects, and LOTS of textures. I have about 4 sprite sheets using the .plist/.pvr approach that have about 70 frames each. Now I feel I must be doing something wrong because I feel like so many games have way more data then this and they can load up just fine. I have tried many ways to make this work efficiently. I will describe each approach and the problems I have had with each.
I made A load up screen on start of the application but I found out that there seems to be no way to load .plist/.pvr asynchronously so I had no choice but to load each .PNG image one by one and no longer use sprite sheets. I feel that this is a ridiculous way but I have no found another solution. so by using this approach the game does load up (it takes some time but it does work) and since all images are preloaded the game runs smoothly. The problem here is that when I hit the home button and tap on my game icon to resume It takes a lot of time to reload all the textures and I have a very long wait before the application resumes. To fix this I have tried the following approach: I learned about setPreserveEGLContextOnPause() and how I can make textures not be lost when pressing home button. So I finally figured out how to set that up and it actually fixed the problem but I tested this with using only about a fourth of my sprites just to see how much memory it was using and I saw that it was already using 345MB of RAM! This means my full game would probably make the phone run out of RAM.
After all the mishap with the first approach I am really convinced I am doing something terribly wrong because I have not seen one android game that has trouble with coming back after hitting home button. I understand I am using many sprites but I can only but them down so much. I would love to go back to using the .plist/.pvr approach but I can't seem to find a way to load these file types while presenting a loading screen.
I have also tried just simply loading each thing per scenes init method. This causes the same time delay between switching scenes also.
Overall I am really stuck. I feel like I must be doing something very wrong because my game is a very simple puzzle game that is not huge by any means. I also want to find a solution that will work for iphones as well as android phones. Any help would be highly appreciated. Thanks.
1* use .mp3 format for Sound.
2* load All texture in app delegate like that.
#if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile( gsd->getFullPath("name.plist")->getCString() )
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile( "name.plist" );
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile( "name.plist" );
#endif
As Android live wallpapers are becoming more prevalent, and developers are doing more with them, a question coming up more and more is how to hide the home screen icons temporarily while the user interacts with the wallpaper.
For this to work, the icons would have to be removed temporarily – not just made invisible, since a tap on an invisible icon would still run the app.
Also, it would be ideal to have a universal solution that works across customs launchers, not just the Android stock launcher.
This question was already asked on StackOverflow, and the answer was that you cannot do this. But this is clearly not correct, as there are at least two programs on Android Market that do exactly this: Show Off (Your Live Wallpaper) and The Cleaner (Show Wallpaper)
Is there a way to hide Android home screen icons, and then later put them back in place?
You can launch an activty which backgroung will be your live walpaper, and finish the activty upon touch... Just a thought...
Edit:
1st comment answer:
Preventing the delay:
You should be more "gentle" in the onCreate() method...
Try creating the minimum as possible in the onCreate(), like, just displaying the basic background...
in the end of the onCreate function, set an alarm (i.e. by AlarmManager) to call some BroadcastReceiver/Activity after half a second or so (with AlarmManager) to set the rest of the live wallpaper graphics... that way you don't have to worry about the delay.
This would have to be a completely new launcher. This is not possible without this I don't think. Sorry. However; to be absolutely sure though you'd have to look at the Launcher2 package in the android source and look through files like Homescreen.java. I'll look into it later on 2.3.3 for you and see what I find.
Try using the zoom gesture as you would to zoom in on a web page (reverse pinch). And you guessed it, the opposite makes everything come back.