我刚刚开始使用Android开发。我有一个非常简单的按钮,如下所示:
<Button
android:id="@+id/howItWorksButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="58dp"
android:text="@string/how_it_works_button_title" />
在代码中我为它设置了背景颜色:
howItWorksButton.setBackgroundColor(Color.RED);
这是onClickListener:
howItWorksButton.setOnClickListener(new OnClickListener()
{
public void onClick(View view)
{
Intent intent = new Intent(MainMenuActivity.this, HowItWorksActivity.class);
MainMenuActivity.this.startActivity(intent);
}
});
问题是,当我点击它时,它看起来并没有被按下,它只是保持原样,没有变化。它的onClick方法工作正常,功能一切都很好,但我希望它看起来有所改变,就像所有按钮在按下时一样。
答案 0 :(得分:6)
如果您手动设置其颜色,Android不会像iOS那样自动显示按下状态。这是推荐的方法。
将colors.xml文件夹放在values文件夹中。它的内容应该是这样的。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#ffffffff</color>
<color name="darkwhite">#ffeeeeee</color>
<color name="transparent">#00ffffff</color>
<color name="semitransparent">#88000000</color>
<color name="orange">#ffff8800</color>
<color name="light_orange">#ffe27d18</color>
<color name="light_blue">#ff00a2e8</color>
<color name="black">#ff000000</color>
<color name="menuButtonColor">#ffea8e44</color>
</resources>
将选择器文件放在drawable中,例如
my_button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/light_orange" android:state_pressed="true"/>
<item android:drawable="@color/orange"/>
</selector>
像这样使用你的选择
<Button
android:id="@+id/howItWorksButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="58dp"
android:text="how_it_works_button_title"
android:background="@drawable/my_button_selector" />
答案 1 :(得分:2)
试试这个,
使用Selector
。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/login_btn" android:state_pressed="false"/>
<item android:drawable="@drawable/login_btn_focus" android:state_pressed="true"/>
</selector>
答案 2 :(得分:0)
你需要设置一个图像选择器作为背景,告诉android当按下按钮,聚焦,禁用时,你希望看到哪个图像或颜色...... 在这里你可以找到一个例子 http://www.mkyong.com/android/android-imagebutton-selector-example/
答案 3 :(得分:0)
在android:state_pressed=" "
和其他pressed
中撰写state
。
按下按钮时
<item android:state_pressed="true">
<shape>
<solid android:color="@color/green" />
<corners android:radius="@dimen/btn_corner_rds" />
</shape>
</item>
未按下按钮时
<item android:state_pressed="false">
<shape>
<solid android:color="@android:color/transparent" />
<stroke android:width="@dimen/stroke_width_btn" />
<corners android:radius="@dimen/btn_corner_rds" />
</shape>
</item>