Android按钮改变颜色和增加大小

时间:2016-04-21 11:27:44

标签: android android-layout

嗨,大家好我是新的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" />

2 个答案:

答案 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);