权重就是分配剩余空间量。大家在使用权重时候,是不是感觉这个挺难理解的 总感觉朦朦胧胧云里雾里的。今天就给大家一个万能公式,直接套用。
先提出一个公因子概念:公因子 = 要分配控件个数 - 1(1块屏幕)
权重和 = 所有要分配控件权重相加
单个控件最终所占比 = 1 - (公因子*单个权重值)/权重和
如三个按钮权重比为1:2:3,那么要分配控件个数为3公因子为2权重和为6
按钮1 = 1 - 2*1/6 = 2/3
按钮2 = 1 - 2*2/6 = 1/3
按钮3 = 1 - 2*3/6 = 0
三个按钮最终占比为2:1:0
效果如图所示
这是我实现页面底部代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/bottm_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/black"> <LinearLayout android:id="@+id/tap01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1"> <ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/zjxx" /> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/white"/> </LinearLayout> <LinearLayout android:id="@+id/tap02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <ImageView android:id="@+id/imageView2" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/gzzd" /> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/white"/> </LinearLayout> <LinearLayout android:id="@+id/tap03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <ImageView android:id="@+id/imageView3" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/sjjk" /> <TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/white"/> </LinearLayout> <LinearLayout android:id="@+id/tap04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <ImageView android:id="@+id/imageView4" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/gncs" /> <TextView android:id="@+id/textView4" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/white"/> </LinearLayout> <LinearLayout android:id="@+id/tap05" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <ImageView android:id="@+id/imageView5" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/xtbd" /> <TextView android:id="@+id/textView5" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/white"/> </LinearLayout> <LinearLayout android:id="@+id/tap06" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <ImageView android:id="@+id/imageView6" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/xtsj" /> <TextView android:id="@+id/textView6" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/white"/> </LinearLayout> </LinearLayout>
效果如图