自定义主题对按钮没有影响

时间:2013-05-28 11:22:03

标签: android android-button android-theme

我有主题文件来应用我的所有按钮。以下编码在我的主题文件中。

    <style name="CustomButton" parent="@android:style/Widget.Holo.Light.Button">
        <item name="android:textSize">14sp</item>
        <item name="android:layout_width">72dp</item>
        <item name="android:layout_height">32dp</item>
        <item name="android:background">@drawable/button_selector</item>
    </style>
   <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:buttonStyle">@style/CustomButton</item>
   </style>

在@ drawable / button_selector

<selector>
    <item android:drawable="@drawable/btn_bg">
        <shape>
            <size android:width="72dip" android:height="32dip"/>
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners
                android:radius="3dp" />
        </shape>
    </item>
</selector>

在我的布局文件中

<Button android:id="@+id/savebtn" 
       android:layout_width="wrap_content" android:layout_marginRight="15dip"
       android:layout_height="wrap_content"
       android:text="Save"/>

我的问题是按钮的宽度和高度没有变化。当我直接在savebtn中设置layout_with(72dp)和layout_height(32dp)时,它可以工作。我已在应用程序标记中定义了主题文件。我不想像我那样设置所有按钮。我想知道任何建议或想法?

的AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myproject"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="15" />

    <application 
        android:label="@string/app_name"
        android:theme="@style/MyTheme">
        <activity
            android:name=".activity.setting.SettingActivity"
            android:label="@string/menu_settings" >
        </activity>
     <activity
            android:name=".activity.setting.AboutActivity"
            android:label="@string/app_name" >
         </activity>    
        <activity
            android:name=".activity.DetailsActivity"
            android:label="@string/app_name" >
           <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
       </activity>      

    </application>

</manifest>

1 个答案:

答案 0 :(得分:0)

我完全测试了你的代码并且它有效。

您是否在AndroidManifest.xml上添加了以下内容?

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyTheme" >

如果仍然无效,请发布您的清单!

另外要注意,如果您在活动中设置另一个主题,它将覆盖应用程序主题!