我创建了一个圆形(小)按钮,它会在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
答案 0 :(得分:0)
使用与selectors结合的形状来完成任务。选择器基本上是按钮应该基于其启用,单击和聚焦状态的形状列表。
选择器通常在XML中定义,同样位于资源的drawable
文件夹中。请参阅this示例。
您正在做的是模仿选择器功能,但是不太清晰,难以维护(更不用说可重用性)。
编辑要回答您的问题,为什么会出现这种行为,请查看setBackroundColor
的实施情况,View
- 它会重置背景形状,取代你的初始形状。