2013-05-28 5 views
10

Я пытаюсь установить минимальную высоту для изображения, программно, но пока не повезло. Мой код нижеAndroid: установить минимальную высоту представления программно

int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 160, getResources().getDisplayMetrics()); 
    int minHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, getResources().getDisplayMetrics()); 

    LayoutParams params = new LayoutParams(width,LayoutParams.MATCH_PARENT); 

    SmartImageView siv = new SmartImageView(getActivity()); 
    siv.setMinimumHeight(minHeight); 
    siv.setLayoutParams(sivParams); 
    siv.setAdjustViewBounds(true); 
    siv.setScaleType(ScaleType.FIT_XY); 
    siv.setImageUrl(url); 
    ll.addView(siv); 

Я также попытался поставить setMinimumWidth метод после метода setLayoutParams но не работал ни. Пожалуйста, помогите

Благодаря

+1

ли Титулы и sivParams те же (это это ошибка ввода или две действительно разные переменные)? Кроме того, вы используете правильный тип LayoutParams? Если родительское представление для siv является RelativeLayout, вам нужно использовать RelativeLayout.LayoutParams, если это LinearLayout - LinearLayout.LayoutParams и т. Д. – npace

+0

извините, что это была ошибка типа, а также я использовал то же самое, что и LinearLayout.LayoutParams –

+0

Примечание для будущих читателей, таких как я: если у вас есть minHeight, установленный в XML, кажется, что попытка изменить его в коде не работает (тестирование Android 4.x). Если вы удалите его из своего XML, вы можете установить его в коде и даже изменить его (установить несколько раз для разных значений). – eselk

ответ

14

попробовать это --->

siv.getLayoutParams().height = minHeight; 

или и можно также попробовать --->

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width , minHeight); 
siv.setLayoutParams(layoutParams); 
+0

На самом деле, у меня есть текст рядом с изображением, а высота изображения будет динамически изменяться в зависимости от количества текста. Но если текста нет, я хочу установить минимальную высоту для изображения, потому что, если текста нет, тогда изображение будет иметь высоту –

+3

, что задает высоту или ширину не минимальной ширины или высоты –

-1
SmartImageView siv = new SmartImageView(getActivity()); 
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, minHeight); 
siv.setLayoutParams(params); 
+0

Спасибо, но мой Высота изображения увеличивается динамически, и я хочу иметь минимальную высоту (например, когда высота изображения равна 0). Ive уже пробовал, но высота изображения будет исправлена. –

+0

Просто передача переменной по имени minHeight не означает, что она устанавливает минимальную высоту представления. – thedarkpassenger

Смежные вопросы