我想让动态创建的TextView的高度为50dp。我尝试使用代码
创建dimens.xml
文件
<dimen name="imageview_height">50dp</dimen>
然后我用
int pixels = getResources().getDimensionPixelSize(R.dimen.imageview_height);
最后在生成的TextView上我只使用。
textView.setHeight(pixels);
然而,当我运行它时,我的应用程序崩溃,并说应用程序名称一直停止。
答案 0 :(得分:1)
您可以使用此设置:
textView.setLayoutParams(new LayoutParams(width, height));
但是根据布局类型,有不同的 LayoutParams 。使用视图所在的布局。例如:如果您的视图位于 LinearLayout 中,请使用 LinearLayout.LayoutParams
有关详细信息,请参阅此帖子:Android set height and width of Custom view programmatically
答案 1 :(得分:0)
如果没有以编程方式设置高度或宽度,Android会抛出异常
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) someLayout.getLayoutParams();
params.height = 130;
someLayout.setLayoutParams(params);
所以通过上面的代码,我们得到了视图本身的布局参数,然后以编程方式设置高度
答案 2 :(得分:-1)
您可以使用以下
进行操作int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
答案 3 :(得分:-1)
final float scale = getContext().getResources().getDisplayMetrics().density;
int pixels = (int) (dps * scale + 0.5f);
然后将该像素设置为编程使用...