Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android layout scaling

If you set your target SDK version in the Android manifest file to "3", then your layout on large-screen devices will be just a scaled up version of what it is on small-screen devices. Once you set the target SDK to a higher SDK, you can create separate layouts for each screen density, which provides a much better user experience.

However, my layout is mainly made up of images, that are high enough resolution that they display just fine on all screen sizes, even when scaled up, because they're big enough that they don't need to be stretched. Now, it would be much easier for me to just create a small-screen layout and have it scaled up, because it would still look nice on large screens. Is there any way I can get that effect without going back to API level 3?

like image 536
SZH Avatar asked Dec 21 '22 14:12

SZH


2 Answers

You can use weight parameter.
“weight” is a term that's used to specify how much of the screen a particular view should occupy if there’s any room left after it’s drawn.

Simply make a LinearLayout and place two TextViews within it as such:

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="small"
    android:layout_weight="0.2"
    android:background="#123" />
 <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.8"
    android:text="huge"
    android:background="#456"
 />
</LinearLayout>

You will notice how views occupy space accordingly. You can create any layout you want for smaller screen and specify weight attribute and every thing will be adjusted beautifully

like image 60
Irfan Ul Haq Avatar answered Dec 27 '22 01:12

Irfan Ul Haq


Just don't specify a layout for larger screens. By default it uses the same one for all screens unless a more specific layout is available. If you're using match_parent for the width and height and the images to scaleType="fitCenter" or "centerCrop" -- things like that, it should fill whatever screen size that it is run on.

like image 21
Kevin Coppock Avatar answered Dec 27 '22 01:12

Kevin Coppock