欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-13 16:35:26
...

      在使用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。

相关标签: 移动开发