在屏幕填充视图上浮动按钮?

时间:2011-04-27 17:50:37

标签: android android-layout

我的Android项目出了问题。

我有一个屏幕填充自定义视图,它显示一个画布。画布由背景图片和另一个图片层组成,其中可以手指绘制。此外,可以拖动和缩放画布视图。 现在我实现了对'longClicks'的检测,即在同一区域向下指1秒钟。作为此手势的结果,应在指向区域上弹出一个小菜单。菜单本身应该包含TabHost / TabWidget之类的东西,即顶部骑手上的小图标,在菜单的下半部分显示单独的EditText,Buttons等。

现在问题是:技术上怎么做?

1)我玩TabHost等,但我认为只有TabActivity时才可以使用。这是对的吗?

2)然后我搜索了使用此TabActivity覆盖我的主要活动的可能性,结果是可能的,但我无法控制叠加活动的位置,它总是从左上角开始。是否有可能在屏幕上的某处放置一个活动?

3)接下来,我用选项卡式菜单放弃了我的想法,并搜索了仅用另一个视图覆盖我的视图的可能性(并且有可能在以后再次删除它)。我读过,可以使用ViewManager。但是如何访问ViewManager?文档说:http://developer.android.com/reference/android/view/ViewManager.html

  

调用Context.getSystemService()。

但是通过这个函数,我只能得到WindowManager而不是ViewManager。跆拳道?

我现在真的被困住了......有人可以帮我一把吗?

编辑: 我通过编程实例化布局然后将其作为contentView处理来管理视图问题。

rl = new RelativeLayout(getBaseContext());
 rl.addView(cview);
 cview.setId(1111);
 View overlay = getLayoutInflater().inflate(R.layout.menuoverlay, rl, false);
 LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
 lp.addRule(RelativeLayout.ALIGN_LEFT, cview.getId());
 lp.addRule(RelativeLayout.CENTER_VERTICAL, cview.getId());
 rl.addView(overlay, lp);

现在,当布局静态并通过编写一些getter / setter方法时,我现在可以控制添加和删除视图。

private static rl;
//scroll scroll
 public static void addView(View view){
 rl.addView(view);

}

2 个答案:

答案 0 :(得分:0)

  

1)我玩TabHost等,但我认为只有TabActivity时才可以使用。这是对的吗?

没有。有关在没有TabActivity的情况下使用TabHost的示例,请查看Is it realizable on Android?

答案 1 :(得分:0)