码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-12-10 09:21:51      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:android   style   http   io   ar   color   os   sp   java   

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>

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

标签:android   style   http   io   ar   color   os   sp   java   

原文地址:http://blog.csdn.net/u014311042/article/details/41841333

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!