2013-09-02 3 views
0

비디오 도어 폰용 Android 앱을 개발하고 있습니다. SIP 오디오 및 mjpeg 비디오 기능이 작동 중입니다 비디오 하단에 3 개의 버튼을 추가하고 싶지만 3 단계에서 추가 한 버튼은 하나뿐입니다. 당신이보기에 버튼을 추가하지 원하는 응답을 사전에 덕분에프로그래밍 방식으로 mjpeg보기에서 오버레이/버튼 추가

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    String URL = "http://172.16.1.58/mjpg/video.mjpg"; 
    //String URL ="http://172.16.20.20/axis-cgi/mjpg/video.cgi?camera=1&resolution=320x240"; 

    getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

    mv = new MjpegView(this); 
    setContentView(mv); 

    // (1) add accept button on video screen 
    acceptBtn = new ImageButton(this); 
    acceptBtn.setImageResource(R.drawable.answer); 
    acceptBtn.layout(0, 0, 0, 0); 
    addContentView(acceptBtn, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    acceptBtn.setOnClickListener(onAccept); 

    // (2) add End key on video screen 
    endBtn = new ImageButton(this); 
    endBtn.setImageResource(R.drawable.end); 
    endBtn.layout(0, 300, 0, 0); 
    addContentView(endBtn, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    endBtn.setOnClickListener(onEnd); 


    // (3) add OpenDoor key on video screen 
    keyBtn = new ImageButton(this); 
    keyBtn.setImageResource(R.drawable.key); 
    keyBtn.layout(0, 600, 0, 0); 
    addContentView(keyBtn, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    endBtn.setOnClickListener(onOpenDoor); 


    new ConnectToImageServer().execute(URL); 
} 

답변

0

같습니다, 당신은 그들 각각에 대한

mv.addView(keyBtn); 같은 것을 할 필요가있다.

그러나 3 버튼을 추가하면 원하는 레이아웃이 제공되지 않을 수 있습니다. 따라서 모든 버튼이 포함 된 xml 레이아웃을 만들고보기에 추가 할 수 있습니다. 이런 식으로 뭔가를 사용하거나 프로그래밍 방식으로 내가 제대로 이해한다면, 말했다

XmlPullParser parser = res.getXml(R.layout.buttonsForVidUI); 
    AttributeSet attributes = null; 
    int state = 0; 
    while(state != XmlPullParser.END_DOCUMENT) 
    { 
     try { 
      state = parser.next(); 
     } catch (XmlPullParserException e1) { 
      e1.printStackTrace(); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     }  
     if (state == XmlPullParser.START_TAG) { 
      if (parser.getName().equals("LinearLayout")) { 
       attributes = Xml.asAttributeSet(parser); 
       break; 
      } 
     } 
    } 

, 무슨 일이있을 수있는 것은 모든 버튼이 서로 중복되는 것은 그래서 당신이 보는 모두가 마지막이다. 단추의 레이아웃이 예상 한 것을 나타 냅니까? 이를 확인하는 방법은 배경을 검은 색으로 설정하고 keyBtn.setBackgroundColor(#000000)을 검은 색으로, 나머지 부분을 투명하게 두는 것입니다. endBtn.setBackgroundColor(#00000000) 마지막 두 개의 0은 알파 채널입니다. 이전에 뷰에 단추를 추가하는 데 어려움을 겪었습니다. 뷰에 뷰를 추가하려고했기 때문에 일부 레이아웃 매개 변수가 무시되었습니다. 이 경우 레이아웃을 위해 모두 XML에 추가해야했습니다. 이것이 옵션일까요?

+0

감사합니다. Cob50nm .. 내 3 개의 버튼이 겹쳐져 있고, xml 파일을 만들 때이 문제가 해결되었습니다. – Woohah

관련 문제