Android中的颜色和样式

时间:2012-10-18 00:02:55

标签: android android-layout android-theme

我正在尝试学习如何制作Android应用程序(在Jellybean 4.1.2上),但我的“HelloWorld”应用程序风格有问题。我想要的是这样(默认的编辑文本/按钮外观):

enter image description here

不幸的是,我看起来像这样:

enter image description here

这是我的布局文件源代码:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:orientation="horizontal">
         <EditText android:id="@+id/edit_message"
             android:layout_weight="1"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:hint="@string/edit_message" />
         <Button
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="@string/button_send" />
    </LinearLayout>

我怎样才能让它看起来像那样,为什么它首先不是那样的?

提前致谢,

Niro56

3 个答案:

答案 0 :(得分:1)

如果您只是针对JellyBean,那么下面的代码应该可以胜任。只需将其添加到AndroidManifest.xml即可。当您打开清单时,请确保您正在查看xml代码,如下所示:

enter image description here

 <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Holo" >

你应该知道,如果你试图在不支持它的设备上使用holo主题(又名:不明白Theme.Holo是什么)那么它很可能会在这些设备上崩溃。

答案 1 :(得分:0)

问题是,默认的android小部件和样式在版本之间发生了很大的变化。特别是从2.3到3.0。与HC宣布的新主题被称为Holo主题。遗憾的是,你不能在以前的版本中使用这个主题(不是没有第三方库),因此GB和HC上的默认小部件看起来非常不同。如果您想在以前的版本中使用此主题,则会有一个名为HoloEverywhere的库。

除此之外,您应该将项目构建目标更改为ICS或JB,然后您可以在Holo主题中看到您的布局(即使您不使用HoloEverywhere): enter image description here

答案 2 :(得分:0)

只需在Android Manifest中更改主题即可。在应用程序内部更改适用于整个应用程序,但您也可以更改应用程序中所有不同活动的主题。实施例 -

 <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Black" >
        <activity
            android:name=".AVST"
            android:label="@string/title_activity_avst" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity