Android 更改应用程序不同部分的颜色
我对一项任务有意见。我的android应用程序应该更改我应用程序中所有布局的背景颜色。顺便说一句,我有9个,按一个按钮,然后更改应用程序中所有按钮的颜色,按一个不同的按钮。除了一个接一个地修改它们之外,我不知道如何进行编辑,我不想这样做,因为我有6种不同的颜色和很多按钮 我找到了这个关于动态改变主题的教程, 但这样我只能同时改变一个或两个 我的舱单:Android 更改应用程序不同部分的颜色,android,colors,background-color,Android,Colors,Background Color,我对一项任务有意见。我的android应用程序应该更改我应用程序中所有布局的背景颜色。顺便说一句,我有9个,按一个按钮,然后更改应用程序中所有按钮的颜色,按一个不同的按钮。除了一个接一个地修改它们之外,我不知道如何进行编辑,我不想这样做,因为我有6种不同的颜色和很多按钮 我找到了这个关于动态改变主题的教程, 但这样我只能同时改变一个或两个 我的舱单: <?xml version="1.0" encoding="utf-8"?> 请帮助MainActivity.java acti
<?xml version="1.0" encoding="utf-8"?>
请帮助MainActivity.java
activity_main.xml
现在,当您单击任何按钮时,背景颜色和所有按钮的颜色都会根据按钮上写入的信息而改变。您可以根据希望使用的按钮和颜色的数量,通过适当的编辑重新使用代码。放弃此功能并尝试一个接一个的方法后,我遇到了另一个问题。这里有解释和回答 找到的解决方案似乎是一种很好的方法,一个接一个的方法不起作用,因为不可能在单个活动中编辑与其他活动关联的布局属性,而我在这里尝试实现的是 它不是很流行,因为按钮变成了单色矩形,但现在对我来说已经足够了
谢谢你的帮助 过去,您无法在运行时动态更改主题,现在可能仍然如此。如果在onCreate中更改主题,则可以接受。但要查看主题的更改,您需要重新创建活动。我不知道这是否改变了。根据限制的不同,你只需打个电话,逐步浏览每个视图并更改颜色。据我所知,这些限制仍然适用。该教程使用一个辅助活动,每次我们按下按钮时都会重新启动该活动,然后所有其他活动都从中派生。但是,正如我所说的,那样我只能同时改变背景和按钮。我需要能够分别更改按钮和背景,而不必逐个更改。问题不在于如何选择颜色。我有6个按钮,每个按钮都有一个指定的颜色。背景也是如此。我的问题是我如何改变应用程序中所有按钮的颜色,而不是一个接一个地做…我知道怎么做。我在寻找一种改变颜色的方法,而不必列举每个onClickListener的每个按钮和背景…@user3137018:我希望我能理解你better@LanccePreston我会尽力解释。。。我想要的是一种改变颜色的方法,而不需要这样做:relativeLayout.setBackgroundColorColor.parseColorDC143C;绿色。挫折背景色。红色;黄色。挫折背景色。红色;蓝色。挫折背景色。红色;每次我点击一下。我想要一种方法来改变所有按钮和所有背景的主题。我不想一个一个地改变,因为它们太多了。@user3137018:好的。我会回来找你的!
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" android:enabled="false" android:vmSafeMode="false">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Call"></activity>
<activity android:name=".City"></activity>
<activity android:name=".Map"></activity>
<activity android:name=".Date"></activity>
<activity android:name=".Color"></activity>
<activity android:name=".Sms"></activity>
<activity android:name=".Developer"></activity>
<activity android:name=".Sms2"></activity>
</application>
package com.mavenmaverick.myapplication;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button Red = (Button) findViewById(R.id.buttonred);
final Button Green = (Button) findViewById(R.id.buttongreen);
final Button Yellow = (Button) findViewById(R.id.buttonyellow);
final Button Blue = (Button) findViewById(R.id.buttonblue);
final RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
Red.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
relativeLayout.setBackgroundColor(Color.parseColor("#DC143C"));
Green.setBackgroundColor(Color.RED);
Yellow.setBackgroundColor(Color.RED);
Blue.setBackgroundColor(Color.RED);
}
});
Green.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
relativeLayout.setBackgroundColor(Color.parseColor("#26D840"));
Red.setBackgroundColor(Color.GREEN);
Yellow.setBackgroundColor(Color.GREEN);
Blue.setBackgroundColor(Color.GREEN);
}
});
Yellow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
relativeLayout.setBackgroundColor(Color.parseColor("#FFDB58"));
Green.setBackgroundColor(Color.YELLOW);
Blue.setBackgroundColor(Color.YELLOW);
Red.setBackgroundColor(Color.YELLOW);
}
});
Blue.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
relativeLayout.setBackgroundColor(Color.parseColor("#0047AB"));
Green.setBackgroundColor(Color.BLUE);
Yellow.setBackgroundColor(Color.BLUE);
Red.setBackgroundColor(Color.BLUE);
}
});
}
}
<Button
android:id="@+id/buttonyellow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/buttongreen"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:background="#FFDB58"
android:text="All Yellow" />
<Button
android:id="@+id/buttonred"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/buttongreen"
android:layout_alignParentTop="true"
android:layout_marginTop="38dp"
android:background="#DC143C"
android:text="All Red" />
<Button
android:id="@+id/buttongreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/buttonyellow"
android:layout_below="@+id/buttonred"
android:layout_marginTop="46dp"
android:background="#26D840"
android:text="All Green" />
<Button
android:id="@+id/buttonblue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/buttonyellow"
android:layout_below="@+id/buttonyellow"
android:layout_marginTop="46dp"
android:background="#0047AB"
android:text="All Blue" />
</RelativeLayout>