i need that my app Android will be supported by 2 devices phone and tablet .
i can find library to integer in my app and supported all screen size.
Thanks
I am assuming you want to support multiple screen sizes for your app. You can refer to this guide from Android Developers. Tl;dr you should make your layouts as flexible as possible. That includes but not limited to
Use ConstraintLayout to define the percentage of screen covered by a component, ratio of sizes etc etc
Avoid using hardcoded values(like layout_width="100dp" etc)
Also for a tablet, you must design an alternative layout which can take advantage of the larger screen in landscape mode
I am about to publish my first app and I am extremely confused about making it look nice on different screens.
At first I thought mdpi/hdpi/etc. values (dimensions) folders would suffice when I saw that the screen was showing the exact same things on S4 Mini & S6 Edge, hdpi & xxxdpi respectively.
Well, how is this even possible when I haven't specified other than the main dimensions.xml file?
From what I understand from playing with the layout editor on different devices is that screen size matters more (?).
So far I have created a mdpi/hdpi/xhdpi/xxhdpi folder but it seems that that's far from enough.
What other folders should I make? Do I need many layout folders too?
I would use this scalable size unit library. It's really easy to use and it will automatically scale your widgets for various screen sizes.
Here's the link if you are interested: https://github.com/intuit/sdp
My app looks great on my phone, and on my AVD. On my co-dev's phone though, his screen is smaller and all the content isn't shown. Is there a way to detect how big the users screen is and adjust the layout from there? If so can someone link me a tutorial? Thank you guys!
Android has two excellent articles on this subject:
Supporting Different Screen Sizes
Supporting Multiple Screens
Right now I have an application I built that is built for android 10.1 inch screens (tablet) and I would like to to be able to be scaled so that it work on the kindle fire (7 inch screen). What would the easiest way to do this be?
Edit:
So I've taken the advise that the majority of the people in this tread have given and replaced all of the absolute layouts with relative layouts and I am using margins left,right,top,bottom, to place them, but still the button images are too large and they are misplaced, how can i do this so it works correctly?
There are some design criterias for developing android applications to make them work in different configurations like screen size:
use different layouts for different configurations
use fill_parent and wrap content properties in layouts
do not give hard coded pixel values
do not use absolute layout
provide different drawables for different configurations
for more look here: http://developer.android.com/guide/practices/screens_support.html
Following the best practices guidelines is always good but sometimes you simple need a whole new layout for different screen sizes. Android allows you to create different layouts files for different screen sizes. To do this you can create a new folder under 'res' called 'layout-large' or 'layout-large-land' for landscape. The same is also true for 'layout-xlarge' and 'layout-xlarge-land'. You can just add another xml layout file in these directories with the same names and same ids and android will automatically pick the right one based on the users screen.
http://developer.android.com/guide/practices/screens_support.html
Honestly, it depends on your application. If you built it so that it would work with tablets and you didn't specify non-percentages for your widths and heights, it will probably automatically scale to the proper size on the Kindle Fire.
Honestly, get a test device (or emulate the size using the Android Emulator) and see what happens. Very likely, if you followed proper design patterns, the app will Just Work (TM) on the Kindle Fire.
If it doesn't, you might want to take a look at how you're specifying the sizes of your elements. Using Pixels or any other type of pixel-based numeric measurement will do some strange things to your UI. Instead of widths and heights, use paddings and margins defined with density independent pixels. This will help your app scale properly.
I recently wrote an app testing it only on mobile phones, and was pleasantly surprised when I purchased a tablet, and the app scaled up perfectly - with no warning from Android about different ways to scale it.
Realy easy, but not recommend because it can pixialize images, is Enabling Screen Compatibility Mode.
Try adding this:
<supports-screens android:compatibleWidthLimitDp="320" />
OR this:
<supports-screens android:largestWidthLimitDp="320" />
to your AndroidManifest.xml.
To understand whats happening check here:
http://developer.android.com/guide/practices/screen-compat-mode.html#Enable
i've created an application for galaxy S..so i'm using 3.7 inch(resolution 320x480) layout for my xml files. The app is working perfectly on the phone. When using the same app in HTC wildfire whose resolution is 240x320 the graphics are out of position. I know the reason is obvious that I'm developing app in 3.7WVGA so graphics will not be compatible for QVGA.
Is the only solution is to create different versions of app on the basis of devices?? or is there a universal solution which i can implement so that the app will run without graphical repositioning on all the devices having different screen sizes and different resolution support??
please help me...coz i dnt really know the answer....and thank you in advance
If you can get away with it, use linear layouts and position things by weight. That way the ratios will stay the same and the same general appearance will hold.