如何添加新的imageView在按钮上单击

时间:2018-09-09 05:15:31

标签: java android xml

我有两个菜单按钮,在其中单击一个创建新的“文本视图”,从已添加可绘制区域中添加另一个按钮,然后单击“创建”。活动。 每次单击它都应添加新的贴纸图像视图。

主要活动文件

 public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.main_add_sticker) {
            Intent intent = new Intent(this, StickerSelectActivity.class);
            startActivityForResult(intent, SELECT_STICKER_REQUEST_CODE);
            return true;
        } else if (item.getItemId() == R.id.main_add_text) {
            addTextSticker();
        }else if (item.getItemId() == R.id.main_add_image){



        }
        return super.onOptionsItemSelected(item);
    }

    protected void addTextSticker() {
        TextLayer textLayer = createTextLayer();
        TextEntity textEntity = new TextEntity(textLayer, motionView.getWidth(),
                motionView.getHeight(), fontProvider);
        motionView.addEntityAndPosition(textEntity);

        // move text sticker up so that its not hidden under keyboard
        PointF center = textEntity.absoluteCenter();
        center.y = center.y * 0.5F;
        textEntity.moveCenterTo(center);

        // redraw
        motionView.invalidate();

        startTextEntityEditing();
    }

    private TextLayer createTextLayer() {
        TextLayer textLayer = new TextLayer();
        Font font = new Font();

        font.setColor(TextLayer.Limits.INITIAL_FONT_COLOR);
        font.setSize(TextLayer.Limits.INITIAL_FONT_SIZE);
        font.setTypeface(fontProvider.getDefaultFontName());

        textLayer.setFont(font);

        if (BuildConfig.DEBUG) {
            textLayer.setText("Hello, world :))");
        }

        return textLayer;
    }

main_menu的XML

<item
        android:id="@+id/main_add_sticker"
        android:icon="@drawable/ic_add"
        android:title="@string/add_sticker"
        app:showAsAction="ifRoom"
        />

    <item
        android:id="@+id/main_add_text"
        android:icon="@drawable/ic_add_text"
        android:title="@string/add_text"
        app:showAsAction="ifRoom"
        />

    <item
        android:id="@+id/main_add_image"
        android:icon="@drawable/ic_add_text"
        android:title="@string/add_image"
        app:showAsAction="ifRoom"
        />

2 个答案:

答案 0 :(得分:0)

尝试setVisible()。创建一个ImageView并添加属性ImageView.setVisible(false)。您可以从Java代码中申请ImageView.setVisible(true)

答案 1 :(得分:0)

您可以动态创建

ImageView imageView = new ImageView(this);
  

请参见docs修改坐标