これで、onDrawメソッドの外部からAndroid上のキャンバスに描画しようとしています。onDrawメソッドの外にあるAndroidグラフィック
それは私のコードを表示するだけの最も簡単です:
public class TestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Paint p = new Paint();
p.setColor(Color.GREEN);
Panel a = new Panel(this,150,150,50,p);
a.drawThing();
setContentView(a);
}
class Panel extends View{
private float radius, x, y;
private Canvas CAN;
private Paint p;
public Panel(Context context, float x, float y, float radius, Paint p){
super(context);
this.x = x;
this.y = y;
this.radius = radius;
this.p = p;
}
@Override
public void onDraw(Canvas canvas){
super.onDraw(canvas);
CAN = canvas;
}
public void drawThing(){
CAN.drawCircle(x, y, radius, p);
}
}
}
あなたは私が何をしようとしていると思いますか?しかし何らかの理由でそれがスローされるNullPointerException
ありがとうございました。私はそれをオフスクリーンで描いています。しかし、私はまだ無効と呼ばれるべき方法と場所を知らないのですか? – SMUsamaShah
無効化は、画面上の情報が正しくなくなり、ビューを再描画する必要があることが分かっているコードのどこでも呼び出されるはずです。したがって、ある種のデータビューを作成している場合は、データが変更されたときに無効にすることができます。ゲームを作っている場合は、ゲームループの繰り返しごとに1回無効にすることができます。正確にこれがあなたがしようとしていることに依存します。 – mtmurdock