How to automaticaly resize view depending the mobile screen size

swift auto layout for different screen sizes
xcode building for multiple screen sizes
xcode 10 size classes
xcode center image in view

Im trying to design a CardView to implement it in a RecyclerView whith a GridLayout. I designed the cardView but when I prove my design in different mobiles with different screen sizes the design doesn't scale itself. I used "dp" unity and "sp" unity like "Android developers" page shows.I don't know if I must create a design for each screen size or each screen density.

Can you help me?

Code:

<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:cardCornerRadius="6dp"
app:cardElevation="4dp"
app:cardUseCompatPadding="true"
android:id="@+id/dlvsr_CardView">


<LinearLayout
    android:layout_width="170dp"
    android:layout_height="170dp"
    android:orientation="vertical"
    android:padding="4dp">

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/ic_launcher_background" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:ellipsize="end"
        android:maxLines="1"
        android:text="Text view tittle"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Text view subtittle" />
</LinearLayout>

Here are the examples:

https://i.stack.imgur.com/nRpBY.png

https://i.stack.imgur.com/scL7K.png

https://i.stack.imgur.com/lrCyZ.png

https://i.stack.imgur.com/REzt7.png

You can use this library for sp and this for dp for all screen sizes. It has different dimen.xml with values respected to the different dpi.

This is the simplest solution to your problem.

Add all the ssp and sdp XML in your res->values-> to your project and then in UI xml use them like below.

<android.support.design.widget.TextInputLayout
        android:id="@+id/textEmailAddressInputLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView"
        android:layout_below="@+id/textView"
        android:layout_marginTop="@dimen/_10sdp"
        android:textSize="@dimen/_14ssp">

In above usage example you can see I have used 14ssp as android:textSize and 10sdp for android:layout_marginTop which will be adjusted according to the dpi of all screen, this will work for all mobile size, tablet and even with Android TV.

Please let me know if you need more info on this.

Xcode Overview: Building for Multiple Screen Sizes, different views or even whole layouts depending on the size category of A size class identifies a relative amount of display space for the Using Auto Layout for Automatic Resizing and Positioning. Auto Layout enables your app to adapt to different window sizes, screen sizes, and device orientations. You don't have to create different design for each screen size. But at least you have to use different dimension for each screen. You have to create Different values folder for different screens . Create a new dimens.xml file by right clicking all the values folder and choosing New > Values resource file.

You don't have to create different design for each screen size. But at least you have to use different dimension for each screen.

To do that

  1. You have to create Different values folder for different screens . Like

    values-sw720dp          10.1" tablet 1280x800 mdpi        
    values-sw600dp          7.0"  tablet 1024x600 mdpi  
    
    values-sw480dp          5.4"  480x854 mdpi     
    values-sw480dp          5.1"  480x800 mdpi   
    
    values-xxhdpi           5.5"  1080x1920 xxhdpi    
    values-xxxhdpi           5.5" 1440x2560 xxxhdpi  
    
    values-xhdpi            4.7"   1280x720 xhdpi     
    values-xhdpi            4.65"  720x1280 xhdpi 
    
    values-hdpi             4.0" 480x800 hdpi    
    values-hdpi             3.7" 480x854 hdpi        
    
    values-mdpi             3.2" 320x480 mdpi        
    
    values-ldpi             3.4" 240x432 ldpi    
    values-ldpi             3.3" 240x400 ldpi
    values-ldpi             2.7" 240x320 ldpi
    
  2. Create a new dimens.xml file by right clicking all the values folder and choosing New > Values resource file. Write dimens for the name. (You could also call it dimen or dimensions. The name doesn't really matter, only the dimen resource type that it will include.)

  3. Add a dimen name and value.

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="my_value">16dp</dimen>
    </resources>
    

    Values can be in dp, px, or sp.

  4. Use the value in xml

    <TextView
        android:padding="@dimen/my_value"
        ... />
    

    or in code

    float sizeInPixels = getResources().getDimension(R.dimen.my_value);
    

How to scale a view based on device size using Auto Layout in , How do you make an image view scale based on device size using Auto Layout in Interface Builder? For example, let's say we're building a profile screen that  It’ll decrease load times on your site by reducing HTTP requests. The iPhone resolution (and that of all mobile devices) is less than 640 pixels wide. So usually I’ll say if the screen is less than 700 pixels wide, switch to single column mode.

You can use ConstraintLayout instead of LinearLayout and constraints view vertically and horizontally. it will be compatible with the different screen sized automatically.

How to scale an image view based on device size with Auto Layout , Now as you see the dpi changes accordingly to the resolution of every device can automatically resize according to different screen sizes then its necessary to​  As earlier I reduce the header height and font size. Then I hide the advertisement are. Then I set main_articles < section > to take width of 90% and siteDescription < article > to take width of 95% from main_articles width. Also I remove the flexbox property from siteDescription < article > and make it as black view.

How does one create automatic resizing of layout according to the , Just declare the constraints and the views are resized accordingly to their The idea of size class is that we have many sets of constraints, and based on the device In this approach, the content will scale up or down depending on its ratio. Just to be sure: The width and height are for the screen resolution not the element size. If you were using the screen resolution, you can easily check if my formula is correct by taking a look at the canvas root component with the scaler: View attachment 272467 You can check if the scale does follow my formula.

Auto Layout with different screen sizes in iOS - Fantageek, Devices vary by hardware and network performance, screen size, and resolution. For example, a layout designed for a desktop computer may not work well on an iOS device. for a range of device sizes, and configure the auto-resize options for layout objects based on See Setting auto-resize options for layout objects. Re: vba to automatically resize userform depending on screen size Hi kirana2014, You can use 'ActiveWindow.Height' or 'Application.Height' to determine the maximum visible UserForm height. If the UserForm is larger than the 'maximum visible height', you can add ScrollBars to the UserForm.

Best practices for designing layouts, You can resize the embed by selecting a new width and the height will be automatically adjusted based on the aspect ratio of your publication. Adjust Your Website to Fit All Screens Defining a page's relative width is the recommended method when it comes to webpage design due to the page's ability to adjust to screens of any size. By defining the width in percentage as opposed to unit number, you build in a certain amount of flexibility for each piece of the page, allowing it to grow

Comments
  • this two libraries work as I need, but trying some designs, when I change landscape to portrait or viceversa the resizing is not good for me. Maybe is better for that to create different layouts for each views(Landscape and Portrait)?
  • @ProRiderZ115 Yes you can create the layout-land folder for landscape layouts.
  • @ProRiderZ115 Have a look at this stackoverflow.com/questions/4572496/…
  • How can I change de dimension for each screen size??
  • You have to create Different values folder for different screens. Follow this stackoverflow.com/a/32861248/4972317
  • But when i create that folders with the dimensions.xml inside, what is the way to attach the dimens for each size screen?
  • You don't have to worry about it. Android will do it for you.
  • Could you give an example please?