繁体   English   中英

在Button / TextView上使用getDimension()总是返回相同的值

[英]Using getDimension() on a Button/TextView always returns the same value

我正在专门为Android平板电脑制作一个应用程序,其中一部分具有根据各种新闻标题动态创建的按钮。 我只有一个dimens.xml,并且使用DisplayMetrics的比例因子来使大小适合于不同的密度。 问题是,当我更改xml中的大小时,它对方法返回的维度完全没有影响。

RelativeLayout.LayoutParams announcementButtonLayout = new   RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
announcementButtonLayout.topMargin = topMargin;
announcementButtonLayout.addRule(RelativeLayout.ALIGN_PARENT_TOP);
announcementButtonLayout.height =     this.getResources().getDimensionPixelSize(R.dimen.news_button_height);
announcementButtonLayout.width = getResources().getDimensionPixelSize(R.dimen.dashboard_right_width);

Button button = new Button (this.getActivity());
button.setWidth(getResources().getDimensionPixelSize(R.dimen.dashboard_right_width));
button.setBackgroundResource(R.drawable.photo_edited);
button.setTextColor(getResources().getColor(R.drawable.news_poll_item_text_color));
float f =Utilities.getPixelScaleMultiplier();
f *= getResources().getDimension(R.dimen.news_item_text);
button.setTextSize(f);
button.setText(announcement.getDescription());
button.setMaxLines(1);
button.setTag(announcement);
button.setOnClickListener(this);            
button.setLayoutParams(announcementButtonLayout);
button.setId(index);

根据我上面的按钮代码,是什么导致这种信任破坏?

谢谢,

Adurnari

编辑:包括我的LayoutParams作为参考

找到了解决方案:

“清理”将获取我在xml中更改的值,并将它们添加到页面之前的位置中。 较低的指示尺寸。

使用LayoutParams设置视图的宽度和高度,然后将其添加到视图组。

Button button = new Button (this.getActivity());
//button.setWidth(getResources().getDimensionPixelSize(R.dimen.dashboard_right_width));
button.setBackgroundResource(R.drawable.photo_edited);
button.setTextColor(getResources().getColor(R.drawable.news_poll_item_text_color));
float f =Utilities.getPixelScaleMultiplier();
f *= getResources().getDimension(R.dimen.news_item_text);
button.setTextSize(f);
button.setText(announcement.getDescription());
button.setMaxLines(1);
button.setTag(announcement);
button.setOnClickListener(this);    
LayoutParams announcementButtonLayout = new LayoutParams(getResources().getDimensionPixelSize(R.dimen.dashboard_right_width), LayoutParams.WRAP_CONTENT);        
button.setLayoutParams(announcementButtonLayout);
button.setId(index);

更改dimens.xml值后清理项目,可能您的情况下R文件没有得到更新。

尝试使用button.setBounds

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM