/**
* All rights Reserved.
* 16:9宽高比的ImageView
*/
package com.mm.android.deviceaddmodule.mobilecommon.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import com.mm.android.deviceaddmodule.R;
/**
* 自定义宽高比的ImageView,默认1:1
* 自定义属性:
*
相对宽度
相对高度
*
* 应用:
*
*
*/
public class CommonRatioImageView extends android.support.v7.widget.AppCompatImageView {
private float width_relative = 1.0f;
private float height_relative = 1.0f;
public CommonRatioImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CommonRatioImageView);
if(array == null)return;
width_relative = array.getDimension(R.styleable.CommonRatioImageView_width_relative,1.0f);
height_relative = array.getDimension(R.styleable.CommonRatioImageView_height_relative,1.0f);
array.recycle();
}
public CommonRatioImageView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CommonRatioImageView);
if(array == null)return;
width_relative = array.getDimension(R.styleable.CommonRatioImageView_width_relative,1.0f);
height_relative = array.getDimension(R.styleable.CommonRatioImageView_height_relative,1.0f);
array.recycle();
}
public CommonRatioImageView(Context context) {
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
widthMeasureSpec = MeasureSpec.makeMeasureSpec(widthSize, MeasureSpec.EXACTLY);
int heightSize = Math.round(widthSize * height_relative/width_relative);
heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightSize, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}