textViewをサブクラス化し、それにビットマップを追加しようとしました。それは動作しません。同じサブクラスを使用して、線を引いて実験します。それでも動作しません。テキストを描いてみました。できます。
基本クラスをtextViewからViewに変更したとき。すべてが機能します。
textViewがテキスト以外の描画をサポートしていないのではないかと思いますか?textViewの基本クラスを持つビューのonDraw()でdrawLine()を使用して線を描画する方法について、作業コードの例を誰かが示すことができますか?
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);
}
}
メインアクティビティのコードパッケージ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);
}
}
メインアクティビティのコードパッケージ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);
}
}
わかりました、このシステムでは今のところ写真を投稿できません。したがって、2番目のコードの結果を表示することはできません。