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 > |
版权声明:本文为u014311042原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。