2014-01-15 1 views
0

Я пытаюсь установить layout_marginTop изображения в одно значение для разных размеров плотности/экрана. В моей папке значения-MDPI У меня есть следующая строка в dimensions.xmlПоля настройки на ImageView

<dimen name="marginTop">10dp</dimen> 

В MainActivity

ImageView image = (ImageView) findViewById(R.id.s_image); 

Но нет никакого способа setmargin для ImageView. Есть ли способ сделать это?

ответ

0

Вам не нужно делать это в коде, вы можете сделать это в своем XML-файле, где определено изображение. См. this page для более подробной информации.

<TextView 
    android:layout_height="@dimen/textview_height" 
    android:layout_width="@dimen/textview_width" 
    android:textSize="@dimen/font_size"/> 
+0

Спасибо за помощь. – KFP

0

Вы на правильном пути. Вероятно, проще всего ссылаться на ваше значение измерения в xml (вместо того, чтобы устанавливать это в Java-коде).

<ImageView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_marginTop="@dimen/yourMarginTopValue" /> 
0

Попробуйте попытаться поставить android:adjustViewBounds="true" к

0

Это, вероятно, лучше сделать это в XML, так как вы, кажется, уже есть ImageView определены в XML.

Однако атрибуты XML layout_* относятся к LayoutParams родительского макета, а не к самому представлению. Чтобы изменить их в коде, обратитесь к ним с помощью getLayoutParams(), внесите изменения и позвоните requestLayout(), чтобы запланировать перепланировку. Например:

ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)imageView.getLayoutParams(); 
lp.topMargin = 123; 
imageView.requestLayout(); 
Смежные вопросы