如何在android中更改背景时保持按钮颜色相同

Posted

技术标签:

【中文标题】如何在android中更改背景时保持按钮颜色相同【英文标题】:how to keep colour of button same when background is changed in android 【发布时间】:2014-06-17 07:02:33 【问题描述】:

我正在开发一个 android 应用程序,在该应用程序中,当我为该应用程序设置背景图像时,按钮或编辑文本之类的任何内容也包含该背景,因此很难看到它们。 以下是我的代码

MainActivity.java

public class MainActivity extends Activity 

    Button b1,b2,b3;
    ImageView i1;
    int count=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b1=(Button) findViewById(R.id.button1);


        View background = findViewById(R.id.background);

                background.setBackgroundResource(R.drawable.img2);



        



activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
     android:id="@+id/background"
    android:background="@drawable/img2"

    tools:context=".MainActivity" >


    <Button
        android:id="@+id/button1"
        android:layout_
        android:layout_
        android:layout_alignLeft="@+id/imageView1"
        android:layout_alignTop="@+id/imageView1"
        android:layout_marginLeft="65dp"
        android:layout_marginTop="50dp"
       android:color="#ffffff"
        android:text="HELLO" />

    <EditText
        android:id="@+id/editText1"
        android:layout_
        android:layout_
        android:layout_below="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"
        android:ems="10" >

        <requestFocus />
    </EditText>

</RelativeLayout>

我希望按钮和编辑文本的颜色与具有纯白色背景时的颜色相同。

【问题讨论】:

更改按钮的背景也像your_button.setBackgroundColor(Color.BLACK) @Aniruddha 我希望按钮保持原来的颜色,就像背景为白色时一样。如果我正在开发一个更大的应用程序,按照你说的做意味着设置背景颜色每个按钮和编辑文本 将以下内容添加到 XML style="?android:attr/buttonBarButtonStyle" 中的按钮和图像中 你在哪里接触到这个?如果您回复将不胜感激:) 【参考方案1】:

试试这个:

@Override
    protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b1=(Button) findViewById(R.id.button1);
    Drawable buttonBackground = b1.getBackground();

    View background = findViewById(R.id.background);
    background.setBackgroundResource(R.drawable.img2);
    b1.setBackgroundResource(buttonBackground);

这会起作用。

【讨论】:

以上是关于如何在android中更改背景时保持按钮颜色相同的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ToggleButton 中选择时更改 SVG 图标颜色

如何在反应js中更改按钮onClick的背景颜色?

如何使用背景颜色设置圆形按钮并在按下时更改颜色

Android:更改按钮文本和背景颜色

如何在颤动中更改文本按钮颜色?

使按钮的背景颜色在单击后更改并保持不变