次のリンクを読みました。
http://marakana.com/s/android_2d_graphics_example,1036/index.html
http://developer.android.com/reference/android/graphics/Canvas.html
Activity.setContentView、View.setContentView?
「setContentView(R.layout.main)」なしでアクティビティを作成する方法
http://www.jayway.com/2009/03/26/layout-resources-in-android/
私の問題について話している以前の記事を読みましたが、問題を解決できません。
私の問題は、画像間の接続をシミュレートするために直線を描きたいということですが、基本的には直線を描くことです。
私が見たすべての例には、アクティビティから継承するメイン クラスと、ビューから継承する別の内部クラスがあります。メイン クラスでは、View クラスを含むユーザー インターフェイスを設定するので、空のユーザー インターフェイスができます。このようなもの:
public class ActivityMain extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView view1 =new MyView(this);
setContentView(view1);
}
public class MyView extends View {
public MyView(Context c) {
super(c);
}
}
//And more code
}
アクティビティから継承するクラスにユーザー インターフェイス (xml ファイル) を設定したい (通常どおり):
public class ActivityMain extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.union);
}
}
そして、Activity を継承するクラスから直線を描画したいので、View を継承するクラスは持ちたくありません。
次のことを試しましたが、行が表示されません。
public boolean onTouchEvent(MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
Canvas canvas = new Canvas();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawLine(0, 0, 300, 700, paint);
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
前の方法では、角 0,0 から角 300,700 まで線を引きたいと思います。簡単なテストです。しかし、私は何も描いていませんし、その理由もわかりません。