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。
上一篇: Redis管道(Pipeline)详解