20.11.2016 Views

ANDROID APP

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

280 บทที่ 11 เทคนิคขั้นสูงสำาหรับพัฒนาแอพบนแอนดรอยด์<br />

}<br />

mPaint.setStyle(Paint.Style.STROKE);<br />

mShader = new SweepGradient(this.getMeasuredWidth()/2,<br />

this.getMeasuredHeight()/2,<br />

new int[] { Color.GREEN,<br />

Color.RED,<br />

Color.CYAN,Color.DKGRAY },<br />

null);<br />

mPaint.setShader(mShader);<br />

public void setText(String text) {<br />

mText = text;<br />

requestLayout();<br />

invalidate();<br />

}<br />

public void setTextSize(int size) {<br />

mTextPaint.setTextSize(size);<br />

requestLayout();<br />

invalidate();<br />

}<br />

public void setTextColor(int color) {<br />

mTextPaint.setColor(color);<br />

invalidate();<br />

}<br />

@Override<br />

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){<br />

setMeasuredDimension(measureWidth(widthMeasureSpec),<br />

measureHeight(heightMeasureSpec));<br />

}<br />

private int measureWidth(int measureSpec) {<br />

int result = 0;<br />

int specMode = MeasureSpec.getMode(measureSpec);<br />

int specSize = MeasureSpec.getSize(measureSpec);<br />

if (specMode == MeasureSpec.EXACTLY) {<br />

// We were told how big to be<br />

result = specSize;<br />

} else {<br />

// Measure the text<br />

result = (int) mTextPaint.measureText(mText)<br />

+ getPaddingLeft()<br />

+ getPaddingRight();<br />

if (specMode == MeasureSpec.AT_MOST) {<br />

result = Math.min(result, specSize);<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!