嗨,有人可以帮我这个代码
horse_btn_a1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
horse_btn_a1.setBackgroundColor(Color.parseColor("@drawable/ront2"));
}
});
我想做的是当按下按钮时它必须保持这种颜色。
答案 0 :(得分:0)
嘿,使用十六进制颜色" #ffffff"用parseColor horse_btn_a1.setBackgroundColor(Color.parseColor("#FFFFFF&#34));
希望我能帮忙
答案 1 :(得分:0)
parseColor方法接受String,当然,但不是资源字符串。
首先需要获取资源String,然后解析:
像这样定义你的颜色资源
<resources>
<color name="colorA">#FF00FF</color>
</resources>
然后在Java中使用它:
String colorString = getContext().getResources().getString(R.color.colorA);
Color c = Color.parseColor(colorString);
btn.setBackgroundColor(c);
答案 2 :(得分:0)
对于同一视图,您可以根据不同的状态(按下/禁用/聚焦)使用不同的绘图。看看
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_sel" android:state_selected="true" />
<item android:drawable="@drawable/button_sel" android:state_pressed="true" />
<item android:drawable="@drawable/button_unsel" />
</selector>
答案 3 :(得分:0)
你可以这样实现
red_circle_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="#F00"/>
</shape>
</item>
</layer-list>
green_circle_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="#0F0"/>
</shape>
</item>
</layer-list>
blue_circle_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="#00F"/>
</shape>
</item>
</layer-list>
button_bg.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/red_circle_bg" android:state_selected="true"/>
<item android:drawable="@drawable/green_circle_bg" android:state_pressed="true"/>
<item android:drawable="@drawable/blue_circle_bg"/>
</selector>
在你的布局中,你可以这样给出
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_bg" />
我们应该采用这种逻辑来使其发挥作用
private boolean mIsSelected = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button horse_btn_a1 = findViewById(R.id.button);
horse_btn_a1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
horse_btn_a1.setSelected(!mIsSelected);
mIsSelected = !mIsSelected;
}
});
}
或我们应该使用Checkable Button