一手遮天 Android - view(布局类): FrameLayout 叠加布局
示例如下:
/view/layout/FrameLayoutDemo1.java
/**
* FrameLayout - 叠加布局控件
*/
package com.webabcd.androiddemo.view.layout;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.FrameLayout;
import com.webabcd.androiddemo.R;
public class FrameLayoutDemo1 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_layout_framelayoutdemo1);
// 演示如何在 java 中控制 FrameLayout 布局,仅代码演示,没有对应的显示效果
sample();
}
private void sample() {
FrameLayout frameLayout = new FrameLayout(this);
// 对应 xml 中的 foreground
frameLayout.setForeground(this.getResources().getDrawable(R.drawable.img_sample_son));
// 对应 xml 中的 foregroundGravity
frameLayout.setForegroundGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM);
}
}
/layout/activity_view_layout_framelayoutdemo1.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
FrameLayout - 叠加布局控件(就是把控件一个一个地放到左上角)
foreground - 前景图片(永远处于帧布局的最上面)
foregroundGravity - 前景图片的显示位置
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:foreground="@drawable/img_sample_son"
android:foregroundGravity="center_horizontal|top">
<TextView
android:layout_width="160dp"
android:layout_height="160dp"
android:background="@color/red"/>
<TextView
android:layout_width="140dp"
android:layout_height="140dp"
android:background="@color/green"/>
<TextView
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@color/blue"/>
</FrameLayout>