如何在每次单击按钮后从位图中删除点

时间:2018-02-08 22:08:38

标签: java android bitmap

我有一个系统,为我选择的每个菜单选项在我的位图上放置一个小点。但是我只希望一次在我的位图上出现一个点,所以当我点击第二个选项时,会出现另一个点。我有一个clearPoint方法,用于清除位图上的点,我怎么能实现它,所以当我按下一个新的按钮选项时,新的点被绘制,但前一个被删除而不是所有点被删除。

这是我的菜单选项

@Override
public boolean onMenuItemClick(MenuItem menuItem) {
    switch (menuItem.getItemId()) {
        case R.id.A:
            fmob.mZoomView.setPoint(list.get(0).getLocationY(), list.get(0).getLocationX());
            Toast.makeText(getBaseContext(), "Location A", Toast.LENGTH_SHORT).show();
        return true;
        case R.id.B:
            Toast.makeText(getBaseContext(), "Selected Location B", Toast.LENGTH_SHORT).show();
            fmob.mZoomView.setPoint(list.get(1).getLocationY(), list.get(1).getLocationX());
            return true;
        default:
            return false;
    }
}

这是我的clearPoint方法

public void clearPoints() {
    points.clear();
    routepoints.clear();
    invalidate();
}

1 个答案:

答案 0 :(得分:0)

如果您已经有一个事件监听器,那么您应该首先使用预制方法创建一个方法>清除位图,第二个>添加新点,第三个>显示更新的位图。它必须按此顺序完成,否则可能会发生语义错误。我的方法结构如下:

public void newPoint(int x, int y) /*throws InvalidPointException*/{
    clearPoints();
    //clear the points on the bitmap

    updateBitmapDisplay();
    //update the bitmap with the new points

    addPoint(x, y);
    //add the point to the bitmap

    updateBitmapDisplay();
    //update the bitmap with new points
}

然后,您必须使用自上而下的编程来使用可用的内容来制作这些方法。但是,我并不完全完全理解你的问题,所以这对你没有用。对不起,如果事实证明是这样,你需要不同的东西。

相关问题