在开发中我们一般会把listview的item高度写死,而宽度匹配屏幕宽度,那么问题来了?
有的屏幕宽有的屏幕窄,图片的宽度就会有被拉伸的可能高宽比会发生变化,拉伸图片就会变形影响美观,下面我们就定义一个随宽度变化高成比例缩放的控件RatioLayout 。
自定义属性有3部曲:
1.在attrs.xml中自定义属性:ratio 宽高比
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!-- 可以获取在xml中定义的ratio的float类型的值 -->
<declare-styleable name="RatioLayout">
<attr name="ratio" format="float"/>
</declare-styleable>
</resources>
2.重新测量view的宽高
public class RatioLayout extends FrameLayout {
private float ratio;
public RatioLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);