[Q] How to design GUI for Android apps? - Android Q&A, Help & Troubleshooting

How do gui designers usually design for Android apps? For iOS apps, I've seen them create a mock up for each device that the app will support (ie iPhone3GS, iPhone4S, iPad2, iPad3) and they supply four sets of drawable resources. I haven't done iOS development so I'm not sure how to translate this process into Android for someone I'm working with. They want to approach it from the same way, by finding the most used device of each density, creating mock ups for them, and giving me the resources that fit those screen sizes, all without obeying the Android principal that all resources should be relative to eachother (ie MDPI -> HDPI you multiply the DP of the graphics by 1.5). For instance, they wanted to give me HDPI resources that fit the galaxy s3 and XHDPI resources that fit the Nexus 10. This approach is basically creating resources by screen resolution, which I know isn't the right way to go. I've tried to explain that the rule for the relationship between each resources size shouldn't be ignored, but at the same time I'm not sure what to tell them when they want to create mock ups. Is there a standard screen resolution for each density that can be used for this purpose? How do other people approach this issue? (I can clarify if this isn't making sense)

Related

E-Ink components

Has anyone designed any screens/components to work on e-ink screens?
I'm writing some apps to run on e-readers (Sony PRS-T1 & B&N Nook) and wondered if anyone else had already thought about e-ink specific designs.
I want to write widgets that scroll using buttons to move between groups of items instead of scrolling.
If no one has already done this, I'm going to subclass AdapterView (as I have cursor's which contain the data already), to create e-ink version of GridView, ListView & a HorizontalListView.
Questions or Problems Should Not Be Posted in the Development Forum
Please Post in the Correct Forums & Read the Forum Rules
Moving to Q&A
aspellclark said:
Has anyone designed any screens/components to work on e-ink screens?
I'm writing some apps to run on e-readers (Sony PRS-T1 & B&N Nook) and wondered if anyone else had already thought about e-ink specific designs.
I want to write widgets that scroll using buttons to move between groups of items instead of scrolling.
If no one has already done this, I'm going to subclass AdapterView (as I have cursor's which contain the data already), to create e-ink version of GridView, ListView & a HorizontalListView.
Click to expand...
Click to collapse
Interesting. I am not aware of such implementations, but I am curious about what you are trying to accomplish in terms of design.
There is a usability issue when creating custom components that do not follow the "look and feel" of the OS's native widgets. However, if your widget consists of an aggregation of native components (or subclassing without redrawing yourself) with added functionality you should be fine, since you can assume the original vendor had the e-ink display in mind when they designed the widgets, and your widget's design will match that of the device on which your app is running.
The rule of thumb for e-ink is to keep contrasts high. Unless you are targeting a very specific device, you won't be certain that the e-ink display will support grey scale or just B&W (or maybe color on some fancy e-ink displays).
Just my 2 cents.
really, the big difference I can see so far is that you don't want animated scrolling, so I want to make controls that use buttons to jump a page of items at a time.
It will be difficult for me to retain the original look and feel for both nook and sony ereaders, bu I am going to try to keep as close as I can.

[Q] Budding developer with a fleshed-out idea for a musical Android app

Hi everyone, I'm a longtime lurker on this forum, but this is the first second thread I've opened. I've just begun studying at the university level, majoring in mechatronics systems engineering and minoring in computing science. I've done a lot of research in the area of music theory, and I discovered peculiar arrangement of musical notes which I call a "pitch-correct harmonic note table" (Google it for a higher resolution than the attached image; I'm too new to post links).
The concept has been explored in the past (see Wikipedia's harmonic note table layout) and the interesting thing about it is that it visually reveals how notes and chords are related to each other. My version, unlike every other one I've found, preserves the proper pitch spelling. A C minor chord, for example, is properly notated as C-Eb-G, not C-D#-G.
The table by itself can prove useful for those learning theory and composition, but right now it's just a picture. Here's where Android application development comes in. I hope to turn this picture into an interactive chord-generating device. It'd be like a guitar, except anyone can pick it up and create music with it, as the chords are easy to play and the relationships are obvious.
The application's general flow would go something like this: First, select a key signature (which positions the purple ribbon), time signature and tempo. Hold down the root of the desired chord. Slide your finger up to select its major chord or down to select its minor chord, and release. Press the root again to play the chord or press a different note (like the seventh) to play an extended chord. The chord will loop until you perform that last step again for a different chord (selecting another chord by touching and sliding does not interrupt the looping).
However, here's where my inexperience with development hinders my progress with this application. I've only taken one programming course and it was in C. I'm taking the Java course now but we're only going as far as the command line. I'm therefore at a loss as to where to begin. I have the SDK and Eclipse all set up and I have some basic ideas for how I would go about coding the notes, like using the "fifths" and "augmented" axes to create a rectangular grid instead of trying to use the hexagonal grid that the table is currently in. I'm probably going to end up creating a playChord() method with parameters for root, quality, extension, and bass. I'm not sure whether to use Canvas or OpenGL; I'm not sure whether to use JetPlayer or MediaPlayer, .mid's or .mp3's or .ogg's, or generate the chords on the fly; I'm not even sure how I'm going to voice the chords (though my Casio keyboard might be able to help with that).
Most of those issues I can worry about later though. For now I'm going to focus on creating something like a soundboard except more refined. This is why I looked to XDA - to give me an initial push in the right direction so I can avoid coding myself into a corner and having to start over. If you can give me any tips or advice, I'll greatly appreciate it. =)
Bump? =)

[Q] layout XML, fill_parent, app-specific screen-size spoofing

Hi all,
I have a Galaxy Tab 2 10.1 with a 1280x800 display and recently enabled floating multi-window capabilities using this mod: http://forum.xda-developers.com/showthread.php?t=2449094
Now that I can have floating windows, I wanted to try and edit some games I play to not take up the whole screen and make them think I'm running on a phone with a small screen size (which I know they can, since I've played the same exact APK on a smaller screen size).
So what do I do? I download apktool, decompile the APK, and check the res/layout XML files. In this particular app's case, there are 3 XML files, and all the views are defined at layout_width and layout_height of fill_parent. I change them to something silly like 400px and 640px (to, say, run 4 of these in landscape mode on my screen).
Of course this doesn't work. Some parts are actually 400/640, but some draw at full screen size. My guess is that there are some parts that are drawn pragmatically that bypass the layout settings set in the XMLs and use calls like GetDeviceScreenSize() for dimensions or whatever. I can't find any other layout rules in the XML so I assume this is embedded in the smali files somewhere (pardon my android development nubbery here).
Now that you know the background, my question is: is there a way I can fool a particular app into thinking that my screen is smaller? I know I can change the entire devices DPI but that won't help me. I want to do this on an app-specific basis, sandbox style. Have I missed something simple other than red/layout that I can change to get this app to behave like I want it to?
If the answer to these questions is no, will I be able to achieve my goal by digging into the smali files? If so, would anyone care to share some advice?
Thanks in advance!

[Q] design question: android sizes in percentage or what?

Hello,
I hope this question is not too general:
I am kind of new to Android, and I am doing the graphics for an application, and I have to send the developer all the sizes and positions of icons and various items like separators etc. Now, because Android comes in so many sizes, how do you guys do normally? Do you give a relative size, like in percentage? Do you think of the sizes in all the different devices? Is the size given in pixels or what else? If I have to say that a bar is at a certain height on the screen, how do I communicate this?
I read the Android developers guide about DPI but that didn't really enlighten me about what to send to this developer.
thank you

"Newbie" looking to create a "standard" android theme. Some starter questions

"Newbie" looking to create a "standard" android theme. Some starter questions
Hello,
I am not new to Android but I have had a tough time finding a "native" way to create themes. I do not want to use a theme launcher or an alternative home app. I just want to use the standard android home app and create a theme for it. I took a brief look at the theme starting page above but none of the links I tried work. I just want to use the standard android theme (it fits my tastes closely enough) and change only a few things (for now). Here is what I want to change:
Wallpaper (so that it changes periodically through a "slide show"... only one shows currently... I have already some of these)
Lock out Wallpaper (so that a different one shows every time like it currently does... I have already created these)
Replace specific icons (I already have the icons I want to use)
Possibly replace colors of one or two apps (such as texting).
Is it possible to do this?
I have done some initial exploring on my own. My phone came with one theme (and the default theme) and that is it. I found it on my phone and decompiled it. It appears a bit more complex than I was hoping though I understand most of it. There are lots of extra icons I do not want to replace so I have a few questions which are number in parenthesis. First, there appears to be some sort of pseudo java code. I know both C++ and C# and have used them extensively. However Java isn't nearly as familiar. It does not however seem to quite fit the Java syntax I have seen and used in the past.
The files that contain this pseudo java code also seem to define the file names to use for each icon followed by a hex code which I am assuming is the activity that the file is associated with. However, I have not found where it defines the lock out wallpaper. (1) If I only specify specific icons, will the default android icon be used or do I need to identify them all? (2) If I need to do them all, is there a location to download the standard theme for Java 6.0.1 (the version on my phone?) (3) Is there a standard format for themes that can be used by the Android Home/Launcher? (4) Is someone going to update the sticky post above with more recent file links?
I found this icon pack generator tool. (5) Does it create "standard" icon packs that can be used without a third party launcher? I still would like to integrate my own wallpapers and lockout wallpapers though.
primem0er said:
Hello,
I am not new to Android but I have had a tough time finding a "native" way to create themes. I do not want to use a theme launcher or an alternative home app. I just want to use the standard android home app and create a theme for it. I took a brief look at the theme starting page above but none of the links I tried work. I just want to use the standard android theme (it fits my tastes closely enough) and change only a few things (for now). Here is what I want to change:
Wallpaper (so that it changes periodically through a "slide show"... only one shows currently... I have already some of these)
Lock out Wallpaper (so that a different one shows every time like it currently does... I have already created these)
Replace specific icons (I already have the icons I want to use)
Possibly replace colors of one or two apps (such as texting).
Is it possible to do this?
I have done some initial exploring on my own. My phone came with one theme (and the default theme) and that is it. I found it on my phone and decompiled it. It appears a bit more complex than I was hoping though I understand most of it. There are lots of extra icons I do not want to replace so I have a few questions which are number in parenthesis. First, there appears to be some sort of pseudo java code. I know both C++ and C# and have used them extensively. However Java isn't nearly as familiar. It does not however seem to quite fit the Java syntax I have seen and used in the past.
The files that contain this pseudo java code also seem to define the file names to use for each icon followed by a hex code which I am assuming is the activity that the file is associated with. However, I have not found where it defines the lock out wallpaper. (1) If I only specify specific icons, will the default android icon be used or do I need to identify them all? (2) If I need to do them all, is there a location to download the standard theme for Java 6.0.1 (the version on my phone?) (3) Is there a standard format for themes that can be used by the Android Home/Launcher? (4) Is someone going to update the sticky post above with more recent file links?
I found this icon pack generator tool. (5) Does it create "standard" icon packs that can be used without a third party launcher? I still would like to integrate my own wallpapers and lockout wallpapers though.
Click to expand...
Click to collapse
I've moved your thread to Q&A as I think it is more appropriate. So you want to keep the standard android launcher, depending on your device you could install a rom that has substratum support. This will allow you to keep your normal launcher but theme every aspect of your rom
sawdoctor said:
I've moved your thread to Q&A as I think it is more appropriate. So you want to keep the standard android launcher, depending on your device you could install a rom that has substratum support. This will allow you to keep your normal launcher but theme every aspect of your rom
Click to expand...
Click to collapse
What about my device would it depend on? If I even understand this question, my first guess would be my OEM. since...
I really don't know what you are talking about. Wouldn't the rom depend on the OEM? What if my OEM doesn't provide substratum report (not that I know what that is).

Categories

Resources