解决Gridview列表view高度无法固定的方法

来源:互联网 发布:噩梦 知乎 编辑:程序博客网 时间:2024/05/29 12:54

代码比较简单,直接贴在下面:

import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.widget.TextView;import com.allfree.cc.util.Util;/** * 固定textview在gridview下的高度 * Created by zhangming on 16/5/23. */public class ExactlyHeightTextView extends TextView {    private int height = 40, lineheight;    private Paint paint;    public ExactlyHeightTextView(Context context) {        this(context, null);    }    public ExactlyHeightTextView(Context context, AttributeSet attrs) {        this(context, attrs, 0);    }    public ExactlyHeightTextView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        lineheight = Util.dip2px(context, (float) 0.5);        paint = new Paint();        paint.setStyle(Paint.Style.FILL);        paint.setColor(Color.LTGRAY);        paint.setStrokeWidth(lineheight);        paint.setAntiAlias(true);    }    @SuppressWarnings("unused")    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        //设置高度为40dp,关键部分        heightMeasureSpec = MeasureSpec.makeMeasureSpec(Util.dip2px(getContext(), height),                MeasureSpec.EXACTLY);        super.onMeasure(widthMeasureSpec, heightMeasureSpec);    }    @Override    public void draw(Canvas canvas) {        super.draw(canvas);        canvas.drawLine(0, lineheight, getMeasuredWidth(), lineheight, paint);    }}


0 0