首页 > 解决方案 > Android - 如何在网格布局中包含的按钮上添加 ImageView

问题描述

我正在开发一个宾果类型的 android 应用程序并具有按钮的网格布局,我希望能够在单击按钮时在文本上添加一个“X”矢量图像,而不是图像出现在文本上方而不是替换它,任何帮助将不胜感激!

想要的效果

标签: android

解决方案


您可以将带有“X”矢量的 ImageView 作为其图像堆叠在按钮顶部,并在使用 OnClickListener 单击按钮后更改其可见性。这是一个简单的例子:

布局:

<Button
    android:id="@+id/btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"/>

<ImageView
    android:elevation="10dp"
    android:id="@+id/iv_cross"
    android:src="@drawable/ic_clear_24px"
    android:visibility="invisible"
    android:layout_width="50dp"
    android:layout_height="50dp"
    app:layout_constraintTop_toTopOf="@id/btn"
    app:layout_constraintBottom_toBottomOf="@id/btn"
    app:layout_constraintLeft_toLeftOf="@id/btn"
    app:layout_constraintRight_toRightOf="@id/btn"/>

其中“@drawable/ic_clear_24px”是“X”向量。

活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button btn = findViewById(R.id.btn);
    final ImageView iv_cross = findViewById(R.id.iv_cross);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            iv_cross.setVisibility(View.VISIBLE);
        }
    });
}

注意 ImageView 的可见性默认设置为不可见。


推荐阅读