Где находится исходный код для стиля виджетов кнопок Android - PullRequest
2 голосов
/ 11 марта 2012

В моем Android-приложении используются виджеты кнопок со стилем по умолчанию, который отлично выглядит, за исключением моего Galaxy Tab 10.1.Там стиль кнопки по умолчанию, кажется, изменился на темный фон с черным текстом;это выглядит ужасно.

Я попытался вручную применить встроенный стиль кнопок по умолчанию в XML, как это;проблемный планшет не меняет поведение, а устройства с хорошим поведением также не меняются:

<Button
  style="@android:style/Widget.Button"
  <!-- other stuff -->
  />

Подвох в том, что другой встроенный стиль кнопок действительно выглядит красиво (стандартный черныйтекст на сером фоне) на плохо работающем планшете:

<Button
  style="@android:style/Widget.Button.Small"
  <!-- other stuff -->
  />

Проблема, конечно, в том, что этот стиль делает кнопку меньше.Что я действительно хотел бы сделать, так это просто найти стандартный исходный код (XML, Java и т. Д.) Для Widget.Button и скопировать его в свое приложение.

Где я могу найти этот исходный код?

Ответы [ 2 ]

6 голосов
/ 11 марта 2012

Вы можете найти все стили внутри этого файла: <installation folder>\android-sdk-windows\platforms\android-8\data\res\values\styles.xml

Где android-8 можно изменить на любую другую версию SDK.

<style name="Widget.Button">
    <item name="android:background">@android:drawable/btn_default</item>
    <item name="android:focusable">true</item>
    <item name="android:clickable">true</item>
    <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item>
    <item name="android:textColor">@android:color/primary_text_light</item>
    <item name="android:gravity">center_vertical|center_horizontal</item>
</style>

<style name="Widget.Button.Small">
    <item name="android:background">@android:drawable/btn_default_small</item>
</style>

Но это не будеттак легко изменить этот стиль, потому что он имеет ссылки на объекты рисования, которые являются не изображениями, а файлами XML с собственными ссылками на другие файлы.Вы можете посмотреть один из таких файлов здесь: ...\android-8\data\res\drawable\btn_default.xml

0 голосов
/ 10 декабря 2014

Вы можете использовать это Angry Tools для разработки стиля кнопки

Выход:

enter image description here

button.xml:

 <Button
    android:id="@+id/angry_btn"
    android:layout_width="250dp"
    android:layout_height="60dp"
    android:background="@drawable/button_shape"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:text="Button"
    android:textColor="#FFFFFF"
    android:textSize="30sp" />

button_shape.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <corners android:radius="33dp" />

    <gradient
        android:angle="90"
        android:centerColor="#37A82F"
        android:centerX="38%"
        android:endColor="#52FF86"
        android:startColor="#41E8C1"
        android:type="linear" />

    <padding
        android:bottom="0dp"
        android:left="0dp"
        android:right="0dp"
        android:top="0dp" />

    <size
        android:height="60dp"
        android:width="250dp" />

    <stroke
        android:width="3dp"
        android:color="#878787" />

</shape>
...