2016-11-04 7 views
1

Я использую compile 'com.intuit.sdp:sdp-android:1.0.3' API для настройки полей линейной компоновки, как этотИзменение маржи программно с помощью 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> 

Теперь, когда я изменить запас программно, она изменяет его в дп не в 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); 

Итак, как изменить маржу программно в соответствии с sdp? Спасибо

+0

почему вы используете этот SDP? –

+0

Он неявно настраивает дизайн макета приложения для разных размеров экрана, означает, что если вы создаете приложение для мобильного устройства с помощью sdp, то на экране планшета появятся те же размеры дизайна, что и не нужно явно его выполнять. – shehzy

ответ

3

Вы можете попробовать

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

Да, это сработало, спасибо – shehzy

+0

можете ли вы отметить это как правильно в ответ? –