【问题标题】:Android- put button on top of viewAndroid-将按钮放在视图顶部
【发布时间】:2013-07-06 22:14:56
【问题描述】:

我正在创建一个用户可以绘制的应用程序,然后更改他们绘制方式的“设置”。在DrawingActivity 类onCreate 中,我将ContentView 设置为我创建的一个类,名为DrawingView,它扩展了View。我想在 DrawingView 上放置一个按钮,但我不知道怎么做。这是 DrawingActivity 类。

public class DrawingActivity extends Activity {

DrawingView dv ;   

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    dv = new DrawingView(this);
    setContentView(dv);

}

【问题讨论】:

    标签: android view android-activity


    【解决方案1】:

    如果您想在 ActionBar 上放置一个图标而不是按钮,我建议您检查并下载 ActionBarSherlock 库以避免兼容性问题并简化您的工作。 例如,如果您已经下载并安装了 SherlockActionBar,您应该按照以下步骤操作:

    1. 从 SherlockActivity 而不是 Activity 扩展您的活动:

      
      public class DrawingActivity extends SherlockActivity {...your code}
      

    将“ic_action_trash”替换为 res/drawable 目录(drawable-hdpi、drawable-ldpi、...)上的图标

    1. 在 res/menu 文件夹中创建一个 xml 文件,名为 menu_main.xml(例如)

    1. 在 DrawingActivity 类中覆盖 OnCreate 方法下方的 onCreateOptionsMenu 和 onOptionsItemSelected 方法,如下所示:

      
      @Override
          public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
              inflater.inflate(R.menu.menu_main, menu);
          }
      
      
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          if (item.getItemId() == R.id.delete_events)
              deleteEvent();
          return true;
      }
      

    结果如下:

    但是,为了检查您的要求,我认为您应该像这样更改上述方法:

    @Override
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            //inflater.inflate(R.menu.menu_main, menu);
    
            SubMenu submenu = menu.addSubMenu("");
            submenu.setIcon(R.drawable.abs__ic_menu_moreoverflow_normal_holo_dark);
    
            submenu.add(1, 1, 1, R.string.add);
            submenu.add(1, 2, 2, R.string.delete);
            submenu.add(1, 3, 3, R.string.about);
            submenu.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        }
    
        public boolean onOptionsItemSelected(MenuItem item) {
            开关(item.getItemId()){
                情况1:
                    添加事件();
                    休息;
                案例2:
                    删除事件();
                    休息;
                案例3:
                    关于();
                    休息;
                默认:
                    返回真;
            }
            返回真;
        }
    

    当您单击顶部图标时,您会看到:

    希望这对你有用!

    【讨论】:

      【解决方案2】:

      RelativeLayout 允许将视图置于彼此之上。您可以使用android:layout_width="match_parent"android:layout_height="match_parent"DrawingView 添加到布局中,然后添加具有适当定位属性的按钮。这是实现您想要的一种方式,我相信还有其他方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-29
        • 2021-07-22
        • 2018-04-29
        • 2013-02-28
        • 2021-09-01
        • 2015-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多