首页 > 其他分享 >Android Studio 设置视图宽高

Android Studio 设置视图宽高

时间:2023-02-25 15:44:35浏览次数:42  
标签:code tv px 视图 content Studio wrap Android dp

这里有两种方法 而第一种方法又分不同的类型

以下是具体内容

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

相关文章

  • Android Studio 设置文字大小和颜色
    设置文字大小分为两种方式1、在xml中进行文字的设置,再在java文件中进行获取显示<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schema......
  • Ubuntu 16.04上安装openjdk7--编译Android6.0使用
    问题背景:需要在编译服务器上编译android6.0代码。这个版本需要使用openjdk7。参考来自官网的信息:https://source.android.com/docs/setup/start/older-versions?hl=zh-c......
  • Android Studio上运行Flutter,报错could not find io.flutter:flutter_embedding_debug
    AndroidStudio4.2.0,Flutter2.2.3Dart2.13.4下载​​io.flutter.zip​​......
  • Android 基础知识4-2.10 GridLayout(网格布局)详解
    一、GridLayout(网格布局)概述        GridLayout布局是Android4.0以后引入的新布局,和TableLayout(表格布局)有点类似,不过它功能更多,也更加好用,最大的特点是放......
  • Android 基础知识4-2.9 FrameLayout(帧布局)详解
    一、FrameLayout(帧布局)概述        FrameLayout又称作帧布局,它相比于LinearLayout和RelativeLayout要简单很多,因为它的应用场景也少了很多。这种布局没有方便的定位......
  • Android 基础知识4-3.1 TextView(文本框)详解
    一、前言    TextView就是一个显示文本标签的控件,就是用来显示文本。可以在代码或者XML中设置字体,字体大小,字体颜色,字体样式(加粗级斜体),文字截断(比如:只显示10个字,......
  • 上班第一天 Android 环境配置
    其实是昨天把大概回归Android开发第一天学会查然后等待反正我是不希望以后再查了写出来吧去谷歌那边把androidstudio下载下来更新jdk版本(与传统的java开发不同......
  • Android笔记--FileProvider
    FileProvider介绍继承于ContentProvider,本质上依旧是用于跨境通信,对第三方应用暴露文件,并授予文件读写地权限具体内容1、在Strings.xml里面配置一个常量2、在Manifest......
  • Android笔记--通过MediaStore查询图片
    相关描述已经完成发送彩信功能之后,就来继续向前走一步,来到MediaStore查询图片界面啦!具体步骤实现1、简简单单地一个界面<?xmlversion="1.0"encoding="utf-8"?><Line......
  • Android Studio 设置文本内容
    首先在Androidstudio中设置文本内容有两种方式1、在XML文件中通过属性android:text设置文本2、在java代码中调用文本视图的对象的setText方法设置文本具体如下1、......