要实现两个圆形背景的切换,可以使用自定义的 drawable selector。下面是一个示例代码:

  1. 创建一个 XML 文件,例如 circle_selector.xml,用于定义 selector 的状态和对应的背景。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/circle_background1" android:state_selected="true" />
    <item android:drawable="@drawable/circle_background2" />
</selector>
  1. 创建两个圆形背景的 XML 文件,例如 circle_background1.xmlcircle_background2.xml,分别定义两个不同的圆形背景。
<!-- circle_background1.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FF0000" />
    <corners android:radius="50dp" />
</shape>

<!-- circle_background2.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00FF00" />
    <corners android:radius="50dp" />
</shape>
  1. 在布局文件中使用自定义的 drawable selector 作为 View 的背景。
<View
    android:id="@+id/my_view"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:background="@drawable/circle_selector" />
  1. 在代码中设置 View 的选中状态。
View myView = findViewById(R.id.my_view);
myView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        v.setSelected(!v.isSelected());
    }
});

这样,当点击 View 时,背景会在两个圆形背景之间切换。


原文地址: https://www.cveoy.top/t/topic/p67u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录