アクティビティで画像を読み込んでいる画像ビューを持っていて、その上に線を描きたいのですが、ImageViewに描画する線をオーバーレイできないようです私は新しいクラス(myPainter)を作成して 'View'を拡張すると、myPainter.onDraw()とsetContentView(mp)をアクティビティからフックして、描画された線だけを取得しますmy ImageViewはonCreateから削除されています()私は同じレイアウトで表示するImageViewのと行を取得するにはどうすればよいです。?私もImageViewのためonTouchを()Override'ingてるので、私はそれからのxyクリックの位置を取得することができます。「アクティビティ」を拡張するクラスに線を描画する
public class myPainter extends View
{
public myPainter (Context context)
{
super (context);
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw (canvas);
Paint p = new Paint();
p.setColor(Color.RED);
canvas.drawLine (E_XMIN, E_YMIN, E_XMAX, E_YMAX, p);
}
}
@Override
public void onCreate (Bundle savedInstanceState)
{
super.onCreate (savedInstanceState);
setContentView (R.layout.main);
ImageView iv = (ImageView) findViewById(R.id.ImageView01);
iv.setOnTouchListener (this);
// this draws my lines, but I loose the pic above ^^^
myPainter mp = new myPainter(this);
setContentView(mp);
}
更新:
私は文字通り自分自身をコーナーに描いたと思います。 onTouchEvent()メソッドでこのコードにframeAnimationを追加するにはどうすればよいですか?ユーザーが画面に触れる場所のように。
@Override
public boolean onTouchEvent (MotionEvent event)
{
//Log.d (TAG, "touchevent in myPainter");
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
Log.d (TAG, "down x:" + event.getX() + " y:" + event.getY());
int wClick = getClick (event.getX(), event.getY());
AnimationDrawable touchAni;
ImageView iv = (ImageView) findViewById (R.drawable.triangle);
iv.setBackgroundResource (R.drawable.nova);
touchAni = (AnimationDrawable) iv.getBackground();
touchAni.start();
return true;
}
return super.onTouchEvent (event);
}
「myConst」とは何ですか?どこで 'E_XMIN、E_YMIN'などを取得したのですか? – ThisGuy
' R.layout.main'で描画しません。基本的に 'setContentView'を変更しました。 'layout.main'は見えません。あなたはそれの上に 'myPainter'を置くだけです。 – ThisGuy