按钮不记得形状

时间:2014-07-21 18:34:57

标签: android button colors shape

我创建了一个圆形(小)按钮,它会在onClick上改变它的颜色。 单击该按钮时,颜色从红色 - 粉红色渐变颜色变为红色。

我的问题是,当颜色改变时,按钮不会保持圆形。

如果有人可以帮助我,那真是太棒了。 :)

用于按钮形状和颜色的XML文件,在drawable-folder中创建,Name = ne.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
    <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF"
        android:angle="270"/>
</shape>

这是我的代码:

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;


public class MainActivity extends ActionBarActivity {
    Button b;


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b=(Button)findViewById(R.id.button3);
    b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

                b.setBackgroundColor(Color.parseColor("#FF4444"));

        }
    });
}
}

提前感谢,

-AD:D

1 个答案:

答案 0 :(得分:0)

使用与selectors结合的形状来完成任务。选择器基本上是按钮应该基于其启用,单击和聚焦状态的形状列表。

选择器通常在XML中定义,同样位于资源的drawable文件夹中。请参阅this示例。

您正在做的是模仿选择器功能,但是不太清晰,难以维护(更不用说可重用性)。

编辑要回答您的问题,为什么会出现这种行为,请查看setBackroundColor的实施情况,View - 它会重置背景形状,取代你的初始形状。