0

I need to display view with exact size in milimeters. The problem I face is that on many android devices when i apply view size im mm, the output differs. Is there any way to achieve the exact same view size on all screens? I tried with:

  • pixels = (mm * dpi) / 25.4
  • context.getResources().getDimensionPixelOffset(R.dimen.size) (100mm)
  • TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 100, displayMetrics);

and nothing

aTable
  • 73
  • 1
  • 4

1 Answers1

2

You have to concentrate on Device Compatability to all screens:

 add this dependency to your build.gradle
 compile 'com.intuit.sdp:sdp-android:1.0.3'

 for eg : dimens.xml 


<dimen name="_1sdp">1.20dp</dimen>
<dimen name="_2sdp">2.40dp</dimen>
<dimen name="_3sdp">3.60dp</dimen>
<dimen name="_4sdp">4.80dp</dimen>
<dimen name="_5sdp">6.00dp</dimen>
<dimen name="_6sdp">7.20dp</dimen>
<dimen name="_7sdp">8.40dp</dimen>
<dimen name="_8sdp">9.60dp</dimen>
<dimen name="_9sdp">10.80dp</dimen>
<dimen name="_10sdp">12.00dp</dimen>
<dimen name="_11sdp">13.20dp</dimen>
<dimen name="_12sdp">14.40dp</dimen>
<dimen name="_13sdp">15.60dp</dimen>
<dimen name="_14sdp">16.80dp</dimen>
<dimen name="_15sdp">18.00dp</dimen>
<dimen name="_16sdp">19.20dp</dimen>
<dimen name="_17sdp">20.40dp</dimen>
<dimen name="_18sdp">21.60dp</dimen>
<dimen name="_19sdp">22.80dp</dimen>
<dimen name="_20sdp">24.00dp</dimen>
<dimen name="_21sdp">25.20dp</dimen>
<dimen name="_28sdp">33.60dp</dimen>
<dimen name="_30sdp">36.00dp</dimen>
<dimen name="_31sdp">37.20dp</dimen>
<dimen name="_32sdp">38.40dp</dimen>
<dimen name="_33sdp">39.60dp</dimen>
<dimen name="_34sdp">40.80dp</dimen>
<dimen name="_40sdp">48.00dp</dimen>
<dimen name="_41sdp">49.20dp</dimen>
<dimen name="_42sdp">50.40dp</dimen>

    for eg:  <TextView
                android:layout_width="match_parent"
                android:layout_height="@dimen/_10sdp"
                android:layout_gravity="center"
                android:gravity="center"/>
     will support all screen sizes.
saiRam89
  • 365
  • 1
  • 8
  • 21
  • no, the problem that i have a picture with width 100mm and it must display 100mm on all devices. – aTable Jan 12 '17 at 12:33