그래서 캔버스가있는 Surface 뷰를 만들었 기 때문에 그래픽을 사용할 수있었습니다. 캔버스가있는 xml 레이아웃을 사용하는 방법이 있습니까? 그래서 단추를 가질 수 있고 화면에 없거나 캔버스에 단추를 만드는 다른 옵션이 있습니까?android surface with XML Layout 및 캔버스에 단추를 추가하십시오.
답변
캔버스가있는 클래스를 하나 만들어야합니다. 그런 다음 xml 레이아웃에서 해당 클래스를 가져옵니다.
예 : FingerPaint Example을 참조하십시오.
위의 예제에는 그 위에 그릴 캔버스가 포함 된 myView 클래스가 있습니다.
당신이해야 할 것은 :
먼저 아래 등으로 XML의 모든 레이아웃을 만듭니다
<RelativeLayout
android:id="@+id/drawingLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</RelativeLayout>
이제 main.xml에이 주 XML 레이아웃 파일이 다음에이 클래스를 추가라고하자 그 레이아웃에 아래처럼 :
setContentView(R.layout.main);
drawingLayout = (RelativeLayout)findViewById(R.id.drawingLayout);
System.out.println("The Layout is: "+drawingLayout);
myView = new MyView(this);
drawingLayout.addView(myView);
희망 포인트. 그렇지 않다면 알려주세요.
즐기십시오. :))
예 및 예 레이아웃에 버튼 뷰를 가질 수 있지만 캔버스 외부에 존재하지만 캔버스도 오버레이 할 수 있습니다. 또는 표면에 직접 버튼을 직접 렌더링하고 직접 터치 감지를 작성하는 오버 헤드를 처리 할 수도 있습니다. 게임 (또는 "sprites"와 같은 게임)을위한 작은 프레임 워크를 만드는 경우 오버 헤드는 이미 수행중인 작업입니다. 이 버튼을 Button보기와 똑같이 보이게 만드는 것은 약간 어렵지만 가능합니다.
이것은 궁극적으로 구현하기가 더 쉽거나 더 좋은 것에 대한 디자인 결정에 이릅니다.
나는 지금 내 자신의 버튼을 구현하려고하는데, 내가 들어가기 위해 생각하는 문제는 전화가 세로에서 가로로 뒤집 혔을 때 일어나는 일 이니, 전화를 설정해야 할 수도 있습니다. 하나의 방향,하지만 난 오히려 .... –
표면의 다른 것들에 대한 방향 문제를 해결하는 방법을 고려해 볼 때 해결책이 필요합니다. –
@ 감사합니다. :) –
heys .. 나는 당신의 해결책을 시도했다. 하지만 canvas가 내 XML 아래에 추가 될 수 있습니다. 나는 그것의 배경과 버튼 위에 그것을 원한다. 나는 또한 버튼의 터치 이벤트를 처리해야한다. .. 어떤 도움이 appreicated .. –