Bai Radule
Bai Radule

Reputation: 61

scale ImageView to look the same on phone and tablet

So this is how to image looks on my phone and on my tablet:

phone

tablet

I want to scale the image such that when I open the app on tablet, the distances d1,d2,d3,d4 will be the same as they are on mobile. I don't want the picture to stay the same size, I just want it to scale so that my design looks the same on every device. I have tried using dp,px to define the distances d1,d2,d3,d4 but it doesn't work. How can I do this?

Upvotes: 0

Views: 743

Answers (2)

MohammadAli
MohammadAli

Reputation: 3456

An android SDK that provides a new size unit - sdp (scalable dp). This size unit scales with the screen size. It can help Android developers with supporting multiple screens.

in gradle past this library :

dependencies {
  implementation 'com.intuit.sdp:sdp-android:1.0.5'
  implementation 'com.intuit.ssp:ssp-android:1.0.5'
}

If you want to use height, width, margin, padding etc then you use @dimen/_20sdp. (Take Size as per your requirement).

If you want to use TextSize then use @diment/_12ssp. (Take Size as per your requirement).

Please have a look below sample code:

<ImageView
            android:id="@+id/img_companies"
            android:layout_width="@dimen/_20sdp"
            android:layout_height="@dimen/_20sdp"
            android:src="@drawable/ic_companies"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"/>

this way u can use fix size of height and width both side

UPDATE

  • sdp is used for same UI in Tablet and Mobile devices.
  • ssp is used for same TextSize for Tablet and Mobile devices.

also u can see this link for another example: https://github.com/intuit/sdp

hope it's useful for u

Upvotes: 3

Ahmed Rajab
Ahmed Rajab

Reputation: 701

I think may be you may set the width and height of the image view to match parent then you may add margins (left,right,top and bottom) according to d1,d2,d3 and d4 then set the scale type of the image view to fit xy.....I am not so sure of the last step but I think I will work

Upvotes: 0

Related Questions