2012-06-04 43 views
6

我想添加一个按钮到MediaController。所以我扩展了MediaController类,创建了一个按钮并将其添加到框架布局中。但新添加的按钮在运行时没有反映出来。添加一个按钮到MediaController

请在下面找到

public class VideoController extends MediaController { 

private Button searchButton; 
public VideoController(Context context) { 
    super(context); 

    searchButton = new Button(context); 
    searchButton.setText("Search"); 
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.gravity = Gravity.RIGHT; 
    System.out.println("Adding a button"); 

    addView(searchButton, params); 
    //updateViewLayout(this, params); 
} 

@Override 
public void hide() { 
} 
} 

的代码我在做什么错在这里。任何建议都会有所帮助。

在此先感谢。

+0

你是如何在mediaController中添加按钮的?你可以分享你的代码或一些提示谢谢 – Dilip

回答

12

您的VideoController类重写setAnchorView

@Override 
public void setAnchorView(View view) { 
    super.setAnchorView(view); 

    Button searchButton = new Button(context); 
    searchButton.setText("Search"); 
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.gravity = Gravity.RIGHT; 
    addView(searchButton, params); 
} 
+0

很好的答案:) – user1840255

+0

什么是setanchorview做什么 – user1767754

1

其实这是因为媒体控制器的观点是后来建造(在makeControllerView方法)。所以你需要覆盖它并在那里添加按钮。

不幸的是,它现在是隐藏的。重写setAnchorView似乎是最好的解决方案。

相关问题