내 액티비티에 그림을로드하는 ImageView가 있고 그 위에 선을 그려야합니다. 내가 그린 선을 오버레이 할 수없는 것처럼 보입니다. . 'View'를 확장하는 새로운 클래스 (myPainter)를 만들면 myPainter.onDraw()를 호출 한 다음 activity에서 onCreate()에서 setContentView (mp)를 연결하면 그려진 선이 모두 얻게됩니다. 내 ImageView는 onCreate에서 사라졌습니다.() 나는 같은 레이아웃에 표시하는 이미지 뷰와 선을 어떻게합니까.? 나는 또한 이미지 뷰에 대한 onTouch()를 Override'ing 해요 그래서 그것을에서 XY 클릭 위치를 얻을 수 있습니다."Activity"를 확장하는 클래스에서 선 그리기
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