SquareLinearLayout(高等于宽的自适应LinearLayout)

Android环境

GridView等场景,指定每行个数、行数,SquareLinearLayout就会自适应填满GridView

[1].[代码] 正方形 跳至 [1] [2] [3]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class SquareLinearLayout extends LinearLayout {
 
     public SquareLinearLayout(Context context) {
         super (context);
     }
 
     public SquareLinearLayout(Context context, AttributeSet attrs) {
         super (context, attrs);
     }
     
     @Override
     public void onMeasure( int widthMeasureSpec, int heightMeasureSpec) {
     
         super .onMeasure(widthMeasureSpec, widthMeasureSpec);
     }
     
}

[2].[代码] 自定义高宽比 跳至 [1] [2] [3]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class SquareLinearLayout extends LinearLayout {
 
     public SquareLinearLayout(Context context) {
         super (context);
     }
 
     public SquareLinearLayout(Context context, AttributeSet attrs) {
         super (context, attrs);
     }
     
     @Override
     public void onMeasure( int widthMeasureSpec, int heightMeasureSpec) {
         int width = MeasureSpec.getSize(widthMeasureSpec);
         int height = Math.round(width* 0 .9f);
         int mode = MeasureSpec.getMode(widthMeasureSpec);
         super .onMeasure(MeasureSpec.makeMeasureSpec(width, mode), MeasureSpec.makeMeasureSpec(height, mode));
     }
     
}

[3].[代码] girdview_item.xml 跳至 [1] [2] [3]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<? xml version = "1.0" encoding = "utf-8" ?>
< com.custom.SquareLinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
     android:layout_width = "match_parent"
     android:layout_height = "match_parent"
     android:gravity = "center"
     android:orientation = "vertical" >
 
     < LinearLayout
         android:layout_width = "fill_parent"
         android:layout_height = "fill_parent"
         android:gravity = "center"
         android:orientation = "vertical" >
 
         < TextView
             android:id = "@+id/name"
             android:layout_width = "wrap_content"
             android:layout_height = "wrap_content"
             android:textColor = "@android:color/black" />
 
         < ImageView
             android:id = "@+id/icon"
             android:layout_width = "wrap_content"
             android:layout_height = "wrap_content" />
 
     </ LinearLayout >
 
</ com.custom.SquareLinearLayout >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值