1

我正在创建一个用户可以绘制的应用程序,然后更改他们绘制方式的“设置”。在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);

}
4

2 回答 2

0

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

于 2013-07-06T22:35:30.057 回答
0

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

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

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

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

  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;
    }
    

And here is the result:

enter image description here

However, to check your requirements, I think you should change the methods above like this:

@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) {
        switch (item.getItemId()) {
            case 1:
                addEvent();
                break;
            case 2:
                deleteEvent();
                break;
            case 3:
                about();
                break;
            default:
                return true;
        }
        return true;
    }

当您单击顶部图标时,您会看到: 在此处输入图像描述

希望这对你有用!

于 2013-07-06T23:44:35.980 回答