模拟器上按钮的颜色与实际设备不匹配
color of Button on emulator doesnt match actual devices
我创建了一个按钮,其背景外观如下图所示。
左侧模拟器右侧的设备。
设备是三星 Galaxy SIII
模拟器是 Nexus 5
按钮代码:
这是按钮的XML代码
<Button
android:id="@+id/button_main_start"
android:text="@string/button_Start"
android:textSize="30sp"
android:layout_width="270dp"
android:layout_height="60dp"
android:theme="@style/buttonTheme"
android:textAllCaps="false"
android:gravity="center_horizontal" />
<style name="buttonTheme" parent="android:style/Theme.NoTitleBar">
<item name="android:buttonStyle">@style/button</item>
</style>
<style name="button" parent="android:Widget.Button">
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:textColor">#FFFFFFFF</item>
<item name="android:shadowColor">#FF000000</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">-1</item>
<item name="android:shadowRadius">0.2</item>
<item name="android:textSize">16sp</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/button</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#00CCFF"
android:centerColor="#0000CC"
android:endColor="#00CCFF"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8.0dp" />
</shape>
移动开发新手,如果需要更多信息请告诉我。
我的想法:
不确定这是否是正确的解决方案,但我将“android:theme="@style/buttonTheme" 放在 manifest.xml 中,它成功了。
你应该检查你的布局,不同的设备必须有不同的布局。同样检查你的风格,不同的版本。
更新:
测试删除按钮主题并添加 android:background="@drawable/button"
从您的样式中提取 <item name="android:background">@drawable/button</item>
并添加:
<style name="buttonTheme" parent="android:style/Theme.NoTitleBar">
<item name="android:buttonStyle">@style/button</item>
<item name="selectableItemBackground">@drawable/button</item>
</style>
你的主题。
我创建了一个按钮,其背景外观如下图所示。 左侧模拟器右侧的设备。
设备是三星 Galaxy SIII 模拟器是 Nexus 5
按钮代码:
这是按钮的XML代码
<Button
android:id="@+id/button_main_start"
android:text="@string/button_Start"
android:textSize="30sp"
android:layout_width="270dp"
android:layout_height="60dp"
android:theme="@style/buttonTheme"
android:textAllCaps="false"
android:gravity="center_horizontal" />
<style name="buttonTheme" parent="android:style/Theme.NoTitleBar">
<item name="android:buttonStyle">@style/button</item>
</style>
<style name="button" parent="android:Widget.Button">
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:textColor">#FFFFFFFF</item>
<item name="android:shadowColor">#FF000000</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">-1</item>
<item name="android:shadowRadius">0.2</item>
<item name="android:textSize">16sp</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/button</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#00CCFF"
android:centerColor="#0000CC"
android:endColor="#00CCFF"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8.0dp" />
</shape>
移动开发新手,如果需要更多信息请告诉我。
我的想法: 不确定这是否是正确的解决方案,但我将“android:theme="@style/buttonTheme" 放在 manifest.xml 中,它成功了。
你应该检查你的布局,不同的设备必须有不同的布局。同样检查你的风格,不同的版本。
更新:
测试删除按钮主题并添加 android:background="@drawable/button"
从您的样式中提取 <item name="android:background">@drawable/button</item>
并添加:
<style name="buttonTheme" parent="android:style/Theme.NoTitleBar">
<item name="android:buttonStyle">@style/button</item>
<item name="selectableItemBackground">@drawable/button</item>
</style>
你的主题。