2012-05-09 3 views
0

내가 달성하고 싶어하는 것은 이것이다. 일부 애니메이션의 경우이 값을 SurfaceView으로 사용합니다. 하지만 Views (TextView)과 RadioButtonGroup (SurfaceView)을 포함하고 싶습니다.특정 부분은

제 질문은 이것이 가능합니까? 'animating sprites'에 대한 샘플 안드로이드 소스 코드를 찾고 있지만, TextViewsSurfaceView을 모두 포함하는 활동을 찾을 수 없습니다. 모두 SurfaceView입니다. 가능하다면 어떻게 할 수 있습니까? 시도 할 수있는 샘플 소스 코드가 있습니까?

답변

0

나는 이것을 시험해 보지 않는다.

public class Preview_can_work extends Activity { 
     private SurfaceView surface_view; 
     SurfaceHolder.Callback sh_ob = null; 
     SurfaceHolder surface_holder  = null; 
     SurfaceHolder.Callback sh_callback = null; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      getWindow().setFormat(PixelFormat.TRANSLUCENT); 

      surface_view = new SurfaceView(getApplicationContext()); 
      addContentView(surface_view, new LayoutParams(50, 50)); 

      if (surface_holder == null) { 
       surface_holder = surface_view.getHolder(); 
      } 

      sh_callback = my_callback(); // CREATING CALLBACK FOR YOUR SURFACE. 
      surface_holder.addCallback(sh_callback); 
     } 

     // THIS FUNCTION RETURNS CALLBACK OBJECT FOR SURFACEVIEW. 
      SurfaceHolder.Callback my_callback() {  
       SurfaceHolder.Callback ob1 = new SurfaceHolder.Callback() { 

        @Override 
        public void surfaceDestroyed(SurfaceHolder holder) { 
        } 

        @Override 
        public void surfaceCreated(SurfaceHolder holder) { 
        } 

        @Override 
        public void surfaceChanged(SurfaceHolder holder, int format, int width, 
          int height) { 
        } 
       }; 
       return ob1; 
     } 

    } 

이제 레이아웃에 텍스트보기 나 버튼을 추가하면됩니다.

참고 : - 표면을 동적으로 생성합니다. 귀하의 경우에는 XML 파일에서 모든 것을 만들 수 있습니다. 표면 뷰를 작성하는 대신 비디오 뷰를 작성하십시오.

SurfaceView surface_view = (SurfaceView) findViewById (R.id.video_view_id);

레이아웃에서 ID별로 뷰를 가져 오는 경우 코드에서 일부 행을 제거해야합니다. 이는 다음과 같습니다

  surface_view = new SurfaceView(getApplicationContext()); 
      addContentView(surface_view, new LayoutParams(50, 50)); 

그것은 당신을 도울 것입니다 희망 ...

0

확실히 가능하지만 조금 더 많은 정보를 제시해야 할 수도 있습니다. 간단한 간단한 애니메이션을 텍스트 뷰 옆에서 실행하려면 표면 뷰가 필요하지 않습니다. 이미지 뷰를 만들고 애니메이션을 실행하십시오. (here is a tutorial 매우 주제로 만들었습니다)

TextView와 그 계열은 View 클래스에서 파생 된 Surfaceview에서 파생되지 않습니다. 다시 한번 간단한 애니메이션을 수행하고 싶다면 표면 뷰가 필요하지 않을 것입니다. 좀 더 역동적 인 복잡한 일을하고 싶다면 내 개발 블로그에 게임용 SurfaceView를 이용하는 방법에 관한 also a tutorial가 있습니다. 이것이 당신의 취향이라면 사용자 정의 표면 뷰를 생성 한 다음 원하는 크기 치수로 레이아웃에 묶을 수 있습니다.

관련 문제