hi, you can watch this post, http://catchthecows.com/?p=72 , I think it helps you. @Override protected void onSizeChanged (int w, int h, int oldw, int oldh) {super.onSizeChanged (w, h, oldw, oldh);
// save view size mViewWidth = w; mViewHeight = h; // first determine font point size adjustTextSize(); // then determine width scaling // this is done in two steps in case the // point size change affects the width boundary adjustTextScale(); } void adjustTextSize() { mTextPaint.setTextSize(100); mTextPaint.setTextScaleX(1.0f); Rect bounds = new Rect(); // ask the paint for the bounding rect if it were to draw this // text mTextPaint.getTextBounds(mText, 0, mText.length(), bounds); // get the height that would have been produced int h = bounds.bottom - bounds.top; // make the text text up 70% of the height float target = (float)mViewHeight*.7f; // figure out what textSize setting would create that height // of text float size = ((target/h)*100f); // and set it into the paint mTextPaint.setTextSize(size); } void adjustTextScale() { // do calculation with scale of 1.0 (no scale) mTextPaint.setTextScaleX(1.0f); Rect bounds = new Rect(); // ask the paint for the bounding rect if it were to draw this // text. mTextPaint.getTextBounds(mText, 0, mText.length(), bounds); // determine the width int w = bounds.right - bounds.left; // calculate the baseline to use so that the // entire text is visible including the descenders int text_h = bounds.bottom-bounds.top; mTextBaseline=bounds.bottom+((mViewHeight-text_h)/2); // determine how much to scale the width to fit the view float xscale = ((float) (mViewWidth-getPaddingLeft()-getPaddingRight())) / w; // set the scale for the text paint mTextPaint.setTextScaleX(xscale); } @Override protected void onDraw(Canvas canvas) { // let the ImageButton paint background as normal super.onDraw(canvas); // draw the text // position is centered on width // and the baseline is calculated to be positioned from the // view bottom canvas.drawText(mText, mViewWidth/2, mViewHeight-mTextBaseline, mTextPaint); }
https://github.com/catchthecows/BigTextButton
Talha source share