Android布局(FrameLayout、GridLayout)

1、帧布局(FrameLayout)

帧布局中的每一个组件都代表一个画面,默认以屏幕左上角作为(0,0)坐标,按组件定义的先后顺序依次逐屏显示,后面出现的会覆盖前面的画面。用该布局可以实现动画效果。继承自ViewGroup,可以在屏幕上显示一个单独的组件,他很难适应不同的屏幕尺寸(可能会出现重叠,但是可以去添加多个子组件通过对齐方式来进行配置),子组件被放在一个栈里面

(1)配置文件

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"    
    android:id="@+id/FrameLayout1"    
    android:layout_width="match_parent"    
    android:layout_height="match_parent"    
    tools:context=".MainActivity"      
    android:foregroundGravity="right|bottom">    
    
    <TextView    
        android:layout_width="200dp"    
        android:layout_height="200dp"    
        android:background="#FF6112" />    
    <TextView    
        android:layout_width="150dp"    
        android:layout_height="150dp"    
        android:background="#7BFE50" />    
     <TextView    
        android:layout_width="100dp"    
        android:layout_height="100dp"    
        android:background="#FFFF12" />    
        
</FrameLayout>    

(2)测试结果

Android布局(FrameLayout、GridLayout)

 

 

 

2、网格布局(GridLayout)

(1)概念

GridLayout提供了一种新的布局方式,它可以将子视图放入到一个矩形网格中,由一定数量的细线组成。

(2)GridLayout有以下两个构造函数:
public GridLayout():
建立一个默认的GridLayout布局

public GridLayout(int numColumns,boolean makeColumnsEqualWidth):
建立一个GridLayout布局,拥有numColumns列。如果makeColumnsEquaWidth为true,则全部组件将拥有相同的宽度

GridLayout中的元素一般不采用layout width和layout_height来界定大小,而是采用“layout_gravity="fillhorizontal""或”fillvertical",并配合GridLayout的“android:orientation"属性来定义它里面的视图元素的大小。默认情况下,它里面的元素大小为“wrap_content"。
GridLayout中的“android:orientation"属性,决定了其中的视图元素的摆放方式,如果为“vertical",则先摆第一列,然后第二列,以此类推;如果为“horizontal",则先摆第一行,然后第二行,以此类推。

(3)配置文件

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:columnCount="4"
    android:orientation="horizontal"
    android:rowCount="6" >

    <TextView
        android:layout_columnSpan="4"
        android:layout_gravity="fill"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:text="0.00"
        android:textSize="50sp" />
    <Button android:text="+" />

    <Button android:text="1" />

    <Button android:text="2" />

    <Button android:text="3" />

    <Button android:text="-" />

    <Button android:text="4" />

    <Button android:text="5" />

    <Button android:text="6" />

    <Button android:text="*" />

    <Button android:text="7" />

    <Button android:text="8" />

    <Button android:text="9" />

    <Button android:text="/" />

    <Button
        android:layout_width="wrap_content"
        android:text="." />

    <Button android:text="0" />

    <Button android:text="=" />

</GridLayout> 

(4)测试:

Android布局(FrameLayout、GridLayout)

 

 

3、总结

Handler可以处理线程和消息

Timer能够规划重复执行的命令

 

Android布局(FrameLayout、GridLayout)

上一篇:Android项目迁移到Androidx的问题解决


下一篇:.Net Core自定义读取配置文件信息appsettings.Json