3

我目前正在开发一个在 android api 4 (1.6) 及更高版本上运行的应用程序。但是,它在 android 4 上看起来非常好(带有新的按钮样式),但在以下所有平台上看起来都很愚蠢,包括 1.6(那里的按钮样式很尴尬)。

如何使所有平台上的按钮视图均等?我可以复制android 4 button style到我的项目来解决这个问题吗?如果是,我在哪里可以找到这种风格。

这就是它应该到处都是的样子:

在此处输入图像描述

4

2 回答 2

3

您可以在此处找到所有可绘制对象和样式:https ://github.com/android/platform_frameworks_base/tree/master/core/res/res

如果您只想使用按钮,则选择与每个密度和样式相对应的可绘制对象就足够了。这些位于“值”文件夹下的相同位置。

于 2012-05-05T08:40:52.120 回答
1

是的,你可以这么做。您需要做的就是创建一个自定义背景并从您的 SDK 目录中复制一些文件。

把它作为一个 xml drawable 放在你的 drawables 文件夹中。我将其命名为 btn_start_activity.xml。但是你可以给它任何你想要的名字。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal_holo_dark" />
    <item android:state_window_focused="false" android:state_enabled="false"
        android:drawable="@drawable/btn_default_disabled_holo_dark" />
    <item android:state_pressed="true" 
        android:drawable="@drawable/btn_default_pressed_holo_dark" />
    <item android:state_focused="true" android:state_enabled="true"
        android:drawable="@drawable/btn_default_focused_holo_dark" />
    <item android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal_holo_dark" />
    <item android:state_focused="true"
        android:drawable="@drawable/btn_default_disabled_focused_holo_dark" />
    <item
         android:drawable="@drawable/btn_default_disabled_holo_dark" />
</selector>

现在 Eclipse 会抱怨它找不到文件。您需要将它们从 sdk.dir/platforms/android-15/data/res/drawable-xxx 复制到您的项目中。注意复制 ldpi、mdpi、hdpi 和 xhdpi 版本。

现在在 res/color 文件夹中创建一个 xml 文件。我指定了名称:primary_text_btn_start.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="@color/bright_foreground_disabled_holo_dark"/>
    <item android:state_window_focused="false" android:color="@color/bright_foreground_holo_dark"/>
    <item android:state_pressed="true" android:color="@color/bright_foreground_holo_dark"/>
    <item android:state_selected="true" android:color="@color/bright_foreground_holo_dark"/>
    <item android:state_activated="true" android:color="@color/bright_foreground_holo_dark"/>
    <item android:color="@color/bright_foreground_holo_dark"/> <!-- not selected -->
</selector>

现在将缺少的颜色值添加到 res/values 中的 colors.xml。

<color name="bright_foreground_disabled_holo_dark">#ff4c4c4c</color>
<color name="bright_foreground_holo_dark">#fff3f3f3</color>

然后将新样式应用于您的按钮

android:background="@drawable/btn_start_activity"
android:textColor="@color/primary_text_btn_start"
于 2012-05-05T09:10:15.643 回答