嗨,大家好我是新的Android东西,我有一个按钮时颜色变化的问题,因为当它改变按钮增长了一点,我不知道为什么。我点击按钮的代码如下。
produzirbt.setBackgroundColor(Color.rgb(38, 198, 219));
Toast.makeText(getApplicationContext(), "Avaria iniciada.", Toast.LENGTH_SHORT).show();
XML
<Button
android:layout_width="150dp"
android:layout_height="100dp"
android:text="Pausa"
android:id="@+id/Pausa"
android:textSize="50px"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_above="@+id/Avaria"
android:layout_toRightOf="@+id/terminaliniciado"
android:layout_toEndOf="@+id/terminaliniciado" />
答案 0 :(得分:0)
默认情况下,您的按钮有一个由某个xml文件定义的背景幕。它包含背景颜色,角半径和填充。然后在java代码中将此样式更改为纯色,填充变为零。要防止尺寸变化,您应该使用颜色定义基本背景。像这样:
<Button
android:layout_width="150dp"
android:layout_height="100dp"
android:text="Pausa"
android:id="@+id/Pausa"
android:textSize="32sp"
android:background="@color/my_button_color"
android:layout_above="@+id/Avaria"
android:layout_toRightOf="@+id/terminaliniciado"
android:layout_toEndOf="@+id/terminaliniciado" />
同时使用按钮颜色是一种hacky方法。如the documentation所说,定义正常风格会更好。
答案 1 :(得分:0)
为了保持按钮大小,请使用setColorFilter()
方法。
在你的情况下:
produzirbt.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.your_color), PorterDuff.Mode.SRC_ATOP);