我試圖給textView子類並向它添加一個位圖。這是行不通的。 使用相同的子類,我通過繪製一條線來進行實驗。它仍然不起作用。 我試圖畫出文字。有用。TextView的onDraw支持圖形繪製嗎?
當我將基類從textView更改爲視圖。一切正常。
我想知道如果TextView中不支持的任何其他繪製文本之外? 有人可以顯示一個工作代碼的例子,關於如何繪製使用drawLine()onDraw()的視圖與基類的textView畫線?
package com.main.test;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
public class Display extends TextView{
Paint p;
public Display (Context context) {
super(context);
init();
}
public Display (Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init()
{
p = new Paint();
p.setColor(Color.WHITE);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawLine(0, 0, this.getMeasuredWidth(), this.getMeasuredHeight(), p);
}
}
主要活動的代碼 package com.main.test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class main extends Activity {
Display input;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initcomponents();
}
private void initcomponents()
{
input = (Display)findViewById(R.id.rateInput);
}
}
如果將其從TextView更改爲View。有用。
package com.main.test;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
public class Display extends View{
Paint p;
public Display (Context context) {
super(context);
init();
}
public Display (Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init()
{
p = new Paint();
p.setColor(Color.WHITE);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawLine(0, 0, this.getMeasuredWidth(), this.getMeasuredHeight(), p);
}
}
主要活動的代碼 package com.main.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
public class main extends Activity {
View input;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initcomponents();
}
private void initcomponents()
{
input = (View)findViewById(R.id.rateInput);
}
}
確定這個系統不允許我現在發佈圖片。所以我不能告訴你第二個代碼的結果。
是的。顯示你的代碼... – pleerock 2012-04-04 16:04:10
我的第一個猜測是它應該工作。爲什麼你不應該能夠在畫布上繪製TextView? – KarlKarlsom 2012-04-04 16:13:29