增加android中自定义TextView的高度

时间:2014-01-05 13:11:23

标签: android textview

我希望增加自定义TextView的高度,以便在TextView下方绘制一些行。任何人都可以帮助我,我该怎么做?这是我的自定义textview

CustomTextView

public class CustomTextView extends TextView{

   public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);init();
        }

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

        public CustomTextView(Context context) {
            super(context);init();
        }

        private Paint mStrokeBrush;
        private void init(){
            mStrokeBrush= new Paint();
            mStrokeBrush.setStrokeWidth(5f);
        }   
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            canvas.translate(0f, getHeight());
            canvas.drawLine(0, 0, getWidth(), 0, mStrokeBrush);
        }

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

    }

1 个答案:

答案 0 :(得分:3)

编辑:我删除了一堆与您的问题无关的代码。对不起,如果它造成了混乱。


这是我自己的代码的修改,它增加了20dp到视图的高度。

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int viewWidth = MeasureSpec.getSize(widthMeasureSpec);
    int viewHeight = MeasureSpec.getSize(heightMeasureSpec);

    //
    // Set view dimensions. Add 20dp.
    //
    int dp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
    setMeasuredDimension(viewWidth, viewHeight + dp);
}