2017-11-21 5 views
2

나는이 초보자 질문이 여기에 있기 때문에 안드로이드 개발에 익숙하다. :이 시나리오에서 동적으로 addView가 아닌 ​​Canvas를 사용하는 것이 더 좋습니까?

나는 활동에 사용자 정의 된 캔버스보기가있다. 프로그래밍 방식으로 이미지 (PNG 드로어 블)를 표시하고 싶습니다.

은 분명히 내가이 일의 2 가지 방법이 첫 번째,보다 전통적인 방법은 다음과 같습니다

  1. 는 "활동 레이아웃"(전체 활동에 대한 레이아웃)
  2. 찾기 : I

    옵션

  3. PNG ImageView에 대한 매개 변수를 설정합니다.
  4. ActivityLayout.addView (pngImageView)

편집 : 그래서이 방법은 PNG는 캔버스 "의"하지만 정말 캔버스 "의 일부가"그것은 정말 그려지지 않습니다하지로 표시됩니다, 그러나 그것의 위에 그러나 사용자에게, 그것은 말하는 것이 불가능하다.

옵션 II : 이러한 방법으로, 당김이 "의 한 부분"입니다 :

는 그리기 개체를 사용은 다음

Drawable.draw(myCanvas) 

편집 전화 내 원하는 PNG 묘화에 자사의 자원을 설정 캔버스와 실제로 그것에 "그려". 그러나 다시 한 번 사용자는 첫 번째 옵션에서이를 알 수 없습니다.

옵션 II를 사용하면 더 편리할까요? 특히, 나는 PNG 드로어 블을 조작하고, 플립하고, 회전시키는 등 Matrix를 사용하고 싶습니다.

미리 감사드립니다.

편집 : 가능한 한 번거로운 작업을하고 싶습니다. 앞으로 전체 캔버스를 캔버스 및 PNG 드로잉의 모든 것을 포함하여 bmp 파일로 내보낼 수 있기를 바랍니다.

+0

안녕하세요, 저는 항상 이상한 생각입니다. 복잡한 그래픽을 다루기 위해 탄생 한 캔버스는 복잡한 그래픽 조작과 관련하여 더 편리해야한다고 생각했습니다. "좀 더 복잡한 것을하고 싶다면"왜 View가 더 나은지 말해 주시면 더 친절하십니까? – Miko

답변

0

차이점은 캔버스 그리기는 하드웨어 가속 (GPU)으로 수행되고 동적 그리기는 소프트웨어 (CPU)로 수행된다는 것입니다. 하드웨어 가속을 사용하지 않도록 설정하면 정확히 동일하게됩니다. 정확히 어느 것이 더 정확한지는 모르지만, 다른 구현처럼 보입니다.

관련 문제