2015-10-15 83 views
0

我有一個擴展View的類。將textView呈現到視圖上

那堂課我畫一個純白色的屏幕,然後想上繪製一些文本:

我用一個TextView也canvas.drawText試過,但我無法得到任何文本渲染。任何想法是什麼問題?

public class MyView extends View{ 

    Paint myPaint; 
    Paint textPaint; 
    Rect background; 
    RelativeLayout layout; 
    TextView text; 

    public myView(Context context, int width, int height){ 

     myPaint = new Paint();   
     myPaint.setColor(Color.WHITE); 

     textPaint = new Paint(); 
     textPaint.setColor(Color.BLACK); 

     background = new Rect(0, 0, width, height); 

     layout = new RelativeLayout(context); 
     layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

     text = new TextView(context); 
     text.setTextColor(Color.BLACK); 
     text.setSize(20); 
     text.setText("Test"); 

     layout.addView(layout); 

    } 

    @Override 
    public void onDraw(Canvas canvas){ 

     canvas.drawRect(background, myPaint); //This draws OK 

     layout.draw(canvas); //Text doesn't draw 

     canvas.drawText("Test", 0, 0, textPaint); //This also doesn't draw 

    } 
} 

回答

1

您正在將myPaint設置爲黑色和白色,並且根本不設置textPaint顏色。另外對於文本顏色,我相信你也需要設置文本大小。因此,改變這些行:

textPaint = new Paint(); 
myPaint.setColor(Color.BLACK); 

到這一點:

textPaint = new Paint(); 
textPaint.setColor(Color.BLACK); 
textPaint.setTextSize(20); 

編輯:

地方比0,0等原點的地方。例如:

canvas.drawText("Test", 100, 100, textPaint); 
+0

糟糕的顏色,這是一個錯字:-)我現在糾正它。我會嘗試在textPaint上設置一個大小。謝謝 – Zippy

+0

Unforuntately,沒有工作,我仍然沒有文字@MitchDart – Zippy

+0

我可以建議你設置你的矩形的油漆顏色像Color.RED的東西,以便您可以確保您的視圖正在充氣到一個可見的大小在所有? –