<Button android:id="@+id/background" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="更改背景" android:textSize="20sp" android:textColor="#0D0D0E" android:background="#ECB959" android:onClick="background"/>怎么实现点击切换代码
时间: 2023-07-03 19:25:12 浏览: 41
你可以在相应的 Activity 或 Fragment 中实现一个名为 `background` 的公共方法,并在该方法中更改背景。具体实现方式如下:
```java
public void background(View view) {
Button button = (Button) view;
if (button.getBackground().getConstantState() == getResources().getDrawable(R.drawable.background1).getConstantState()) {
button.setBackgroundResource(R.drawable.background2);
} else {
button.setBackgroundResource(R.drawable.background1);
}
}
```
这个方法会检查当前按钮的背景,如果是 `background1` 就切换到 `background2`,否则就切换到 `background1`。同时,你需要在 `res/drawable` 目录下准备好 `background1` 和 `background2` 两张图片。最后,在 `Button` 的 XML 中将 `onClick` 属性设置为 `background` 即可。
相关问题
<Button android:id="@+id/add" android:layout_width="wrap_content" android:layout_height="wrap_contwent" android:text="+" android:textSize="20sp" android:textColor="#09E02E" android:background="#F8F8F8" android:onClick="add"/>
这是一个 Android 布局文件中的 Button 控件的代码,其中:
- android:id="@+id/add" 表示该 Button 控件的 ID 为 "add",可以在后续的 Java 代码中通过该 ID 来引用该控件。
- android:layout_width="wrap_content" 和 android:layout_height="wrap_content" 分别表示该 Button 控件的宽度和高度均为自适应,即根据 Button 的内容自动调整。
- android:text="+" 表示该 Button 控件的文本内容为 "+"
- android:textSize="20sp" 表示该 Button 控件的文本大小为 20sp。
- android:textColor="#09E02E" 表示该 Button 控件的文本颜色为绿色。
- android:background="#F8F8F8" 表示该 Button 控件的背景色为灰色。
- android:onClick="add" 表示当用户点击该 Button 控件时,会调用名为 "add" 的方法。该方法需要在对应的 Java 代码中实现。
<Button android:id="@+id/btn_prefer" android:layout_width="80dp" android:layout_height="40dp" android:layout_alignParentBottom="true" android:background="@drawable/bnav_tab_background" android:gravity="center" android:text="偏好选择" android:textSize="18sp" /> <Button android:id="@+id/btn_fullView" android:layout_width="50dp" android:layout_height="40dp" android:layout_above="@id/btn_prefer" android:layout_marginBottom="5dp" android:background="@drawable/bnav_tab_background" android:gravity="center" android:text="全览" android:textColor="#333333" android:textSize="18sp" /> <Button android:id="@+id/btn_road" android:layout_width="50dp" android:layout_height="40dp" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:background="@drawable/bnav_tab_background" android:gravity="center" android:text="路况" android:textColor="#333333" android:textSize="18sp" /> Hardcoded string "偏好选择", should use `@string` resource Hardcoded string "全览", should use `@string` resource Hardcoded string "路况", should use `@string` resource Hardcoded string "开始导航", should use `@string` resource
这段代码存在一些问题。其中,"偏好选择"、"全览"、"路况"和"开始导航"的文本应该使用`@string`资源来定义,而不应该直接写在布局文件中。这样做可以方便后续的国际化和本地化。你可以在`strings.xml`文件中定义这些文本,例如:
```
<string name="btn_prefer">偏好选择</string>
<string name="btn_fullView">全览</string>
<string name="btn_road">路况</string>
<string name="btn_startNavigation">开始导航</string>
```
然后在布局文件中使用`@string`引用这些资源,例如:
```
<Button
android:id="@+id/btn_prefer"
android:layout_width="80dp"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:background="@drawable/bnav_tab_background"
android:gravity="center"
android:text="@string/btn_prefer"
android:textSize="18sp" />
<Button
android:id="@+id/btn_fullView"
android:layout_width="50dp"
android:layout_height="40dp"
android:layout_above="@id/btn_prefer"
android:layout_marginBottom="5dp"
android:background="@drawable/bnav_tab_background"
android:gravity="center"
android:text="@string/btn_fullView"
android:textColor="#333333"
android:textSize="18sp" />
<Button
android:id="@+id/btn_road"
android:layout_width="50dp"
android:layout_height="40dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:background="@drawable/bnav_tab_background"
android:gravity="center"
android:text="@string/btn_road"
android:textColor="#333333"
android:textSize="18sp" />
<Button
android:id="@+id/btn_startNavigation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/btn_bg_selector"
android:paddingLeft="40dp"
android:paddingRight="40dp"
android:text="@string/btn_startNavigation"
android:textColor="@android:color/white"
android:textSize="16sp" />
```