关于android中TextView动态设置距离属性问题

由于一些需求,需要在代码中动态设置TextView距离 ,这时候就需要用到TextView中的方法

setLayoutParams(ViewGroup.LayoutParams params) 

而LayoutParams属性有多种父类,那么此时就需要有所选择

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10, 0, 0, 0);//4个参数按顺序分别是左上右下
textView.setLayoutParams(layoutParams);

此时TextView的父类是FrameLayout,所以此时使用了    FrameLayout.LayoutParams  。

动态添加的数值在代码中是以px为单位,而经常使用的单位为dp,此时就需要在代码中将 dp 单位转化,

 
  
((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, getResources().getDisplayMetrics()))

于是这里应该为

layoutParams.setMargins(((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, getResources().getDisplayMetrics())), 0, 0, 0);

你可能感兴趣的:(关于android中TextView动态设置距离属性问题)