我有一个开始时有一个白色边框的按钮。通过使用以下内容应用xml背景,在按钮def中设置:
android:background="@drawable/butt1"
butt1 def如下:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:topLeftRadius="30dp"
android:topRightRadius="30dp"
android:bottomLeftRadius="30dp"
android:bottomRightRadius="30dp"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>
<stroke
android:width="4dp"
android:color="#FFFFFF"
/>
</shape>
只要我有活动的深色背景
,这就可以正常工作我的应用程序可以更改背景,当我更改为浅色背景时,因为笔触颜色为白色而无法看到按钮(#FFFFFF)
如果背景更改为白色,如何将边框颜色更改为黑色(#000000)
我可以使用
将文字颜色更改为黑色Button view5 = (Button) findViewById(R.id.sett);
view5.setTextColor(Color.parseColor("#000000"));
但无法解决如何应用新的xml背景样式
任何帮助表示赞赏
标记
答案 0 :(得分:1)
您可以为黑色边框创建第二个butt1
xml,当背景颜色变为浅色时,您可以调用view5.setBackgroundResource(R.drawable.butt1_black_border);
来更改按钮的背景带黑色边框的xml
编辑:
view5.setBackgroundResource(R.drawable.butt1_black_border);
答案 1 :(得分:1)
如何将边框颜色更改为黑色(#000000)
改变观点的可绘制性:
Button view5 = (Button) findViewById(R.id.sett);
ShapeDrawable gradientDrawable = (ShapeDrawable)view5.getBackground();
gradientDrawable.setStroke(2, color);
请参阅setStroke() docs。
答案 2 :(得分:0)
你可以使用焦点改变监听器&amp;设置背景drawable。通过检查布尔值设置按钮背景 -
将有两个不同笔触颜色的drawableview5.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
}
});