나는 계기판으로 구성된 응용 프로그램을 작성 중입니다. here에서 다운로드했는데 게이지 뷰 내부에 텍스트를 그려야합니다 (게이지 뷰의 중심에 있음) 어떻게하면 게이지 뷰 안에 텍스트를 그려 도움이 될 수 있습니까? 스택 오버 플로우에서android에서 캔버스에 텍스트를 그리는 방법
내 친구 후에게 대답 나는이처럼했지만이 작품은 vipluv를 들어
private void drawGauge()
{
if (null != mBackground)
{
mBackground.recycle();
}
/*--For Semi circle put getHeight()/2--*/
mBackground = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
newBitmap = Bitmap.createBitmap(mBackground.getWidth(), mBackground.getHeight(), Config.ARGB_8888);
Canvas newCanvas = new Canvas(newBitmap);
final Canvas canvas = new Canvas(mBackground);
final float scale = Math.min(getWidth(), getHeight());
canvas.scale(scale, scale);
canvas.translate((scale == getHeight()) ? ((getWidth() - scale)/2)/scale : 0,(scale == getWidth()) ? ((getHeight() - scale)/2)/scale : 0);
Paint paintText = new Paint(Paint.ANTI_ALIAS_FLAG);
paintText.setColor(Color.WHITE);
paintText.setTextSize(50);
paintText.setTextAlign(Align.CENTER);
paintText.setStyle(Style.FILL);
Rect rectText = new Rect();
paintText.getTextBounds(captionString, 0, captionString.length(), rectText);
newCanvas.drawText(captionString, 0, rectText.height(), paintText);
//canvas.drawText("MedeQuip", 200, 500, shadowpaint);
//drawRim(canvas);
//drawFace(canvas);
작동 확인하시기 바랍니다하지 않았다 : 단위)의 onDraw에서
protected void onDraw(final Canvas canvas) {
drawBackground(canvas);
final float scale = Math.min(getWidth(), getHeight());
canvas.scale(scale, scale);
canvas.translate((scale == getHeight()) ? ((getWidth() - scale)/2)/scale : 0, (scale == getWidth()) ? ((getHeight() - scale)/2)/scale : 0);
if (mShowNeedle) {
drawNeedle(canvas);
}
if (mShowText) {
drawText(canvas);
}
Paint paintText = new Paint(Paint.ANTI_ALIAS_FLAG);
paintText.setColor(Color.WHITE);
paintText.setTextSize(150);
paintText.setTextAlign(Align.CENTER);
paintText.setStyle(Style.FILL);
Rect rectText = new Rect();
paintText.getTextBounds(captionString, 0, captionString.length(), rectText);
canvas.drawText(captionString, rectText.width(), rectText.height(), paintText);
computeCurrentValue();
}
canvas.drawText()해야합니다. – vipluv
이것은 좋은 참조 일 것입니다 : https://www.youtube.com/watch?v=pCUQ_6iA_3o – CodeWalker
나는 그것을했습니다. 그러나 작동하지 않습니다. @vipluv – lakshman