android更改按钮笔触颜色

时间:2014-08-09 08:13:54

标签: android button drawable

我有一个开始时有一个白色边框的按钮。通过使用以下内容应用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背景样式

任何帮助表示赞赏

标记

3 个答案:

答案 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。通过检查布尔值设置按钮背景 -

将有两个不同笔触颜色的drawable
view5.setOnFocusChangeListener(new OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                // TODO Auto-generated method stub

            }
        });
相关问题