2017-01-12 48 views
0

我需要以毫米爲單位顯示精確尺寸的視圖。我面對的問題是,在許多Android設備上,當我應用視圖尺寸im mm時,輸出不同。有沒有辦法在所有屏幕上實現完全相同的視圖尺寸? 我試圖與:所有屏幕上的相同視圖尺寸

  • 像素=(毫米* DPI)/ 25.4
  • context.getResources()getDimensionPixelOffset(R.dimen.size)(100毫米)
  • TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM。 ,100,displayMetrics);

並沒有什麼

回答

2

你必須專注於設備兼容性所有的屏幕:

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. 
+0

不,我有寬度100毫米的圖片,它必須顯示在所有設備上100毫米問題。 – Alexey