Android开发学习日志(二)控件View

这篇博客详细介绍了Android中View的基本属性,包括在XML文件中的常用属性,如id、width、height、margin和padding等,并探讨了在Java代码中如何通过setLayoutParams设置视图的布局参数。同时,讲解了LayoutParams的三种设置方式,以及如何设置View的最小尺寸、背景颜色和可见性。

View的基本属性

View是Android的基本视图,所有控件和布局都是View类的子类直接或间接派生而来的
View一般会放在ViewGroup中

View在xml文件中的常用属性

  • id:视图的编号 string
  • layout_width:宽度
含义
dp数值具体数值
match_parent与上级试图一样宽
warp_content与内部试图一样宽,如果超过上级视图按上级视图宽度,超出部分滚动
  • layout_height:高度,取值说明同上
  • layout_margin:指定该视图与周围视图之间的空白距离,另有layout_marginTop,layout_marginBottom,layout_marginLeft,layout_marginRight分别表示上下左右宽度
  • minWIdth:该视图最小宽度
  • minHeight:该视图最小高度
  • background:背景颜色,可以是图片或颜色
  • layout_gravity:该视图与上级视图的对齐方式,若同时适用多种对齐方式,则用 | 连接起来
XML中的对齐方式Gravity类中的对齐方式说明
leftLEFT靠左对齐
rightRIGHT靠右对齐
topTOP向上对齐
bottomBOTTOM向下对齐
centerCENTER居中对齐
center_horizontalCENTER_HORIZONTAL水平方向剧中
center_verticalCENTER_VERTICAL垂直方向居中
  • padding:指定该视图边缘与内部之间的空白距离。另有paddingTOP,paddingBOTTOM,paddingLEFT,paddingRIGHT指定上下左右的间距
  • visibility:指定视图的可见类型
XML中的可视类型Gravity类中的可视类型说明
visibleVISIBLE可见,默认值
invisibleINVISIBLE不可见。虽然看不到但占据空间
goneGONE消失。不可见且不占据空间

注:padding与margin的区别
padding是到里层距离
margin是到外层距离


视图在JAVA代码中常用的设置方法

setLayoutParams(ViewGroup.LayoutParams params):设置该视图的布局参数

参考资料:
Android开发:LayoutParams的用法
LayoutParams相当于一个Layout的信息包,封装了长宽高等信息。
LayoutParams类只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住组件就好。
这个函数是子对父的,即子控件中要加setLayoutParams
注意,这个函数的参数必须是父控件!!!


常用写法:
1.使用new创建一个新的LayoutParams对象作为参数(动态大小)
基本语法为:
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
依据父控件的类型加限制
例子如下:
XML文件

<LinearLayout
	android:id="@+id/LinearInside"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:layout_weight="1"
	android:orientation="horizontal"
	android:background="@android:color/holo_blue_bright">

	<TextView
    	android:id="@+id/textView3"
	  	android:layout_width="wrap_content"
    	android:layout_height="44dp"
    	android:layout_weight="1"
    	android:text="TextView" />
</LinearLayout>

JAVA文件

TextView tv3 = findViewById(R.id.textView3);
tv3.setLayoutParams(new LinearLayout.LayoutParams
		(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT));

上面的XML文件中TextView在LinearLayout下,则setLayoutParams函数中参数为

new  LinearLayout.LayoutParams
		(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT)

WARP_CONTENT同理
2.使用父控件的LayoutParams作为参数(动态大小)
xml文件同1
JAVA

LinearLayout LinearL = findViewById(R.id.LinearInside);
TextView tv3 = findViewById(R.id.textView3);
tv3.setLayoutParams(LinearL);

如上,直接使用父控件的LayoutParams做参数
3.使用固定数值(固定大小)
xml文件同1
JAVA

TextView tv3 = findViewById(R.id.textView3);
tv3.setLayoutParams(new LinearLayout.LayoutParams(40,40));

另外,使用LayoutParams.setMargin可以设置到父控件的边界距离
如下
xml文件:

<LinearLayout
        android:id="@+id/Linear"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:background="@android:color/holo_blue_light">

        <LinearLayout
            android:id="@+id/LinearInside"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@android:color/holo_blue_bright"
            android:orientation="horizontal">
        </LinearLayout>

    </LinearLayout>

JAVA文件:

LinearLayout linearInside = findViewById(R.id.LinearInside);
LinearLayout.LayoutParams LIP = (LinearLayout.LayoutParams)linearInside.getLayoutParams();
LIP.setMargins(80,80,80,80);

请忽略小红点和send按钮>=<

  • setMinimumWidth
    设置该视图的最小宽度
  • setMinimumHeight
    设置该视图的最小高度
  • setBackgroundColor
    设置该视图的背景颜色
  • setBackgroundDrawable
    设置该视图的背景图片
  • setBackgroundResource
    设置该视图的背景资源id
  • setPadding
    设置该视图边缘于子视图之间的空白距离
  • setBackgroundDrawable
    设置该视图的背景图片
  • setBackgroundResource
    设置该视图背景资源的id
  • setVisbility
    设置该视图的可视类型,具体内容如下表
XML中的可视类型Gravity类中的可视类型说明
visibleVISIBLE可见,默认值
invisibleINVISIBLE不可见。虽然看不到但占据空间
goneGONE消失。不可见且不占据空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值