在做android开发的时候,有时候我们需要用调解控件的比例,而不是固定控件的长度和宽度。在Java代码中调节的时候,有时候很麻烦,今天给大家介绍一种自定义固定比例的控件的方法,废话多说,直接上代码:
package com.android.widget;
import com.sun.R;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.widget.LinearLayout;
/**
* 可调节长宽比例的LinearLayout,会自动根据宽度按比例调节高度
* @author sunzheng
* @date 2013.10.15
* @tips xmlns:etion="http://schemas.android.com/apk/res/com.xuanwu.etion"<br>
* etion:aspectRatio="float"<br>
* etion:aspectRatioBase="integer":<br>
* 0=ASPECT_RATION_BASE_X, 1=ASPECT_RATION_BASE_Y<br>
* */
public class ScaleLinearLayout extends LinearLayout {
/**以X为基准进行比例缩放*/
public static final int ASPECT_RATION_BASE_X=0;
/**以Y为基准进行比例缩放*/
public static final int ASPECT_RATION_BASE_Y=1;
private float aspectRatio=0;
private int aspectRatioBase=0;
public ScaleLinearLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
readAttrs(context, attrs);
}
public ScaleLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
readAttrs(context, attrs);
}
public ScaleLinearLayout(Context context) {
super(context);
}
private void readAttrs(Context context, AttributeSet attrs){
TypedArray a = context.obta