2016-11-04 3 views
1

Ich bin mit compile 'com.intuit.sdp:sdp-android:1.0.3' api für die Margen von linearem Layout wie dieseÄndern Marge programmatisch mit sdp

<LinearLayout 
     android:id="@+id/layout_message" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="@dimen/_10sdp" 
     android:layout_marginTop="@dimen/_10sdp" 
     android:padding="@dimen/_8sdp" 
     android:orientation="vertical"> 
</LinearLayout> 

nun einstellen, wenn ich die Marge programmatisch ändern, ändert sie es in dp nicht in sdp

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

params.setMargins(0, 10, 10, 0); 
layout_message.setLayoutParams(params); 

Also, wie programmatisch die Marge nach sdp ändern? Danke

+0

warum Sie diese SDP? –

+0

Sie passt Ihr App-Layoutdesign implizit an verschiedene Bildschirmgrößen an. Wenn Sie Ihre App für ein mobiles Gerät mit sdp erstellen, werden auf dem Tablet-Gerät-Bildschirm dieselben Designdimensionen angezeigt, die Sie nicht explizit ausführen müssen. – shehzy

Antwort

3

Sie können versuchen,

int margin = getResources().getDimensionPixelSize(R.dimen._10sdp); 
params.setMargins(0, margin, margin, 0); 
+1

Ja, es hat funktioniert, danke – shehzy

+0

können Sie es als richtig in der Antwort markieren? –

Verwandte Themen