Android开发------自定义宽高相等的ImageView

      在使用RecyclerView时,由于RecyclerView已经将使得屏幕宽度被ImageView平分,但此时ImageView的长宽大小不一样,那就应该写一个继承ImageView的类,重写onMeasure方法,具体代码如下:

import android.content.Context;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.widget.ImageView;


/**
 * 实现宽高相等的ImageView
 */
public class WEqualsHImageView extends AppCompatImageView{

    public WEqualsHImageView(Context context) {
        super(context);
    }

    public WEqualsHImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public WEqualsHImageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        super.onMeasure(widthMeasureSpec, widthMeasureSpec);

    }
}

      原先的onMeasure方法是直接调用父类的onMeasure,传入的长和宽是不同的两个值,这里为了使得宽长相等,将其改为设置为用一个值既可;

      然后在原先包含ImageView的xml中,将ImageView改为重写的类,这里是WEqualsHImageView。

猜你喜欢

转载自blog.csdn.net/weixin_39071173/article/details/89365925