Android 按钮颜色赢了';修改背景色后不会改变
我正在构建我的第一个Android应用程序,它模仿默认的iOS/OSX计算器应用程序 当前的布局如下所示 在我的布局中,我已经修改了数字键的背景,但现在当它们被单击时,背景颜色不会像默认行为那样变为深灰色。这是我需要添加到Android 按钮颜色赢了';修改背景色后不会改变,android,android-layout,android-button,Android,Android Layout,Android Button,我正在构建我的第一个Android应用程序,它模仿默认的iOS/OSX计算器应用程序 当前的布局如下所示 在我的布局中,我已经修改了数字键的背景,但现在当它们被单击时,背景颜色不会像默认行为那样变为深灰色。这是我需要添加到@drawable资源中的内容吗?还有,是否需要修改布局,使其填充设备屏幕,而不是在底部留下空白 fragment\u main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an
@drawable
资源中的内容吗?还有,是否需要修改布局,使其填充设备屏幕,而不是在底部留下空白
fragment\u main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$CalculatorFragment"
android:orientation="vertical"
android:background="#ffd3d3d3"
android:weightSum="1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/zero"
android:id="@+id/textView"
android:fontFamily="helvetica"
android:textSize="65sp"
android:textAlignment="gravity"
android:gravity="end"
android:textColor="#FFFFFF"
android:background="#545454"
android:layout_weight="0.15" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:columnCount="4"
android:rowCount="4">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:fontFamily="helvetica"
android:text="@string/AC"
android:id="@+id/AC"
android:layout_weight="0.25"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp" />
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/plusminus"
android:fontFamily="helvetica"
android:id="@+id/plusminus"
android:layout_weight="0.25"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/percent"
android:fontFamily="helvetica"
android:id="@+id/percent"
android:layout_weight="0.25"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/div"
android:fontFamily="helvetica"
android:id="@+id/div"
android:layout_weight="0.25"
android:background="#FF9900"
android:textColor="#FFFFFF"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/nine"
android:id="@+id/nine"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/eight"
android:id="@+id/eight"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/seven"
android:id="@+id/seven"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:id="@+id/mult"
android:text="@string/mult"
android:layout_weight="0.25"
android:background="#FF9900"
android:textColor="#FFFFFF"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/six"
android:id="@+id/six"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/five"
android:id="@+id/five"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/four"
android:id="@+id/four"
android:layout_weight="0.25"
android:fontFamily="helvetica"
android:background="#e5e5e5"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/minus"
android:id="@+id/minus"
android:layout_weight="0.25"
android:background="#FF9900"
android:textColor="#FFFFFF"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/three"
android:id="@+id/three"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/two"
android:id="@+id/two"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/one"
android:id="@+id/one"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/plus"
android:id="@+id/plus"
android:layout_weight="0.25"
android:background="#FF9900"
android:fontFamily="helvetica"
android:textColor="#FFFFFF"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="0.5"
android:text="@string/zero"
android:id="@+id/zero"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/dec"
android:id="@+id/dec"
android:layout_weight="0.25"
android:fontFamily="helvetica"
android:background="#e5e5e5"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/equal"
android:id="@+id/equal"
android:layout_weight="0.25"
android:background="#FF9900"
android:fontFamily="helvetica"
android:textColor="#FFFFFF"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
</LinearLayout>
使用填充选项并更改relatvilayout
<Relativelayout xmlns:android="http://schemas.android.com/apk/res /android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$CalculatorFragment"
android:orientation="vertical"
android:background="#ffd3d3d3"
android:weightSum="1">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/zero"
android:id="@+id/textView"
android:fontFamily="helvetica"
android:textSize="65sp"
android:textAlignment="gravity"
android:gravity="end"
android:textColor="#FFFFFF"
android:background="#545454"
android:layout_weight="0.15" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:columnCount="4"
android:rowCount="4"
android:padding ="5dp">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:fontFamily="helvetica"
android:text="@string/AC"
android:id="@+id/AC"
android:layout_weight="0.25"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp" />
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/plusminus"
android:fontFamily="helvetica"
android:id="@+id/plusminus"
android:layout_weight="0.25"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/percent"
android:fontFamily="helvetica"
android:id="@+id/percent"
android:layout_weight="0.25"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/div"
android:fontFamily="helvetica"
android:id="@+id/div"
android:layout_weight="0.25"
android:background="#FF9900"
android:textColor="#FFFFFF"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding ="5dp">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/nine"
android:id="@+id/nine"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/eight"
android:id="@+id/eight"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/seven"
android:id="@+id/seven"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:id="@+id/mult"
android:text="@string/mult"
android:layout_weight="0.25"
android:background="#FF9900"
android:textColor="#FFFFFF"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding ="5dp">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/six"
android:id="@+id/six"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/five"
android:id="@+id/five"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/four"
android:id="@+id/four"
android:layout_weight="0.25"
android:fontFamily="helvetica"
android:background="#e5e5e5"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/minus"
android:id="@+id/minus"
android:layout_weight="0.25"
android:background="#FF9900"
android:textColor="#FFFFFF"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding ="5dp">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/three"
android:id="@+id/three"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/two"
android:id="@+id/two"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/one"
android:id="@+id/one"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/plus"
android:id="@+id/plus"
android:layout_weight="0.25"
android:background="#FF9900"
android:fontFamily="helvetica"
android:textColor="#FFFFFF"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="0.5"
android:text="@string/zero"
android:id="@+id/zero"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/dec"
android:id="@+id/dec"
android:layout_weight="0.25"
android:fontFamily="helvetica"
android:background="#e5e5e5"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/equal"
android:id="@+id/equal"
android:layout_weight="0.25"
android:background="#FF9900"
android:fontFamily="helvetica"
android:textColor="#FFFFFF"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
</LinearLayout>
对于按钮按下状态,有许多关于堆栈溢出的文章。这可以是一个开始:
对于布局,请使用“权重和”属性来划分布局。如果要支持某些特定按钮状态(按下、激活、选择等)的背景更改,则必须使用
选择器,而不是平面颜色值
例如,对于按钮:
<Button
android:layout_height="wrap_content"
android:layout_width="0dp"
android:text="@string/six"
android:id="@+id/six"
android:layout_weight="0.25"
android:background="#e5e5e5"
android:fontFamily="helvetica"
style="?android:attr/borderlessButtonStyle"
android:textSize="30sp"/>
在本例中,按下按钮时将使用颜色值#cccccc
,android:layout_weight
是一个无效的参数,使用RelativeLayout
,我最好还是坚持线性布局
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#cccccc" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#e5e5e5" />
</shape>
</item>
</selector>