这里有两种方法 而第一种方法又分不同的类型
以下是具体内容
1、采用wrap_content定义
wrap_content表示和自身一样的长度
按照内容的多少去设定空间大小,然后按照权重的比例分配剩余控件。即当控件没有内容或内容未超出按照权重比例分配的空间时,就按照layout_weight设定的权重比例分配空间,当内容大小超过这样分配的空间时,控件就会扩张,其实就是按照wrap_content来占用空间了,剩下的空间仍然按照本段定理来分配。
2、采用match_parent定义
表示和父组件一样的长度
3、采用固定大小
如xx dp 这种方式
以下是具体代码
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="视图宽高采用wrap_content定义" android:textColor="#000000" android:background="#00ffff" android:textSize="17sp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="视图宽高采用match_parent定义" android:textColor="#000000" android:background="#00ffff" android:textSize="17sp" /> <TextView android:layout_width="300dp" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="视图宽高采用固定大小定义" android:textColor="#000000" android:background="#00ffff" android:textSize="17sp" />
第二种方式是在java代码中直接进行定义
步骤为,在TextView中定义为wrap_content
再在java中进行视图属性的获取,再进行修改即可
<TextView android:id="@+id/tv_code" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="通过代码指定视图宽高" android:textColor="#000000" android:background="#00ffff" android:textSize="17sp" />
java中
public class ViewBorderActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_border); TextView tv_code = findViewById(R.id.tv_code); //获取tv_code的布局参数(含高度和宽度) ViewGroup.LayoutParams params = tv_code.getLayoutParams(); //修改布局参数中的宽度数值,注意默认px单位,需要把dp数值转成px数值 params.width = Utils.dip2px(this,300); //设置tv_code的布局参数 tv_code.setLayoutParams(params); } }
这里有一个细节的地方在于需要进行单位的转换,把dp数值转化为px数值
这里写了一个工具类
public class Utils { public static int dip2px(Context context,float dpValue) { //获取当前手机的像素密度 一个dp对应多少px float scale = context.getResources().getDisplayMetrics().density; //用于四舍五入 return (int)(dpValue * scale +0.5f); } }
其中+0.5f再取整是四舍五入的操作,举例来说
当一个浮点数 例如1.4 1.3等 加上0.5是1.9、1.8 小于2 再取整仍然是1
而对于那些大于等于1.5的数,加上0.5后再进行取整是2
因此达到四舍五入的目的
标签:code,tv,px,视图,content,Studio,wrap,Android,dp From: https://www.cnblogs.com/Arkiya/p/17154549.html