代码比较简单,直接贴在下面:
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);
}
}