2012-04-04 6 views
64

は、だから私は、ICSのためAndroid Dev Design siteを見ていたし、アプリケーションのすべては、これらの字幕/セクションヘッダがあります。誰もが知っていた場合、私は思っていたアンドロイド4.0サブタイトル(セクション)ラベルスタイリング

ICS Section Headers

をカスタムスタイリングは、このようなラベルを実現します。 Android SDKでこのように見えるラベルビューは見つかりませんでしたが、私はこれらの外観が本当に好きです。

ありがとうございました!

答えて

69

だからこれは私が使用して終了するものである:

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <style name="sectionHeader" parent="android:Widget.Holo.Light.TextView"> 
     <item name="android:drawableBottom">@drawable/section_header</item> 
     <item name="android:drawablePadding">4dp</item> 
     <item name="android:layout_marginTop">8dp</item> 
     <item name="android:paddingLeft">4dp</item> 
     <item name="android:textAllCaps">true</item> 
     <item name="android:textColor">@color/emphasis</item> 
     <item name="android:textSize">14sp</item> 
    </style> 
</resources> 

@の描画可能/ section_headerである場合:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <size android:width="1000dp" android:height="2dp" /> 
    <solid 
     android:color="@color/emphasis"/> 
</shape> 

そして@色の:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="emphasis">#31b6e7</color> 
    <color name="bg_gray">#cecbce</color> 
</resources> 
+1

これは下のテキストの上に、たとえば下のTextViewを持つGridLayoutに青色の線を引っ張らないようにします。私はスクリーンショットでTextViewsを使用していないためだと思います。適切な行動はどうすればよいでしょうか? – pjv

+14

noobsのヒント:トップコードはres/values/sectionHeader.xmlにある必要があります。@colorsの部分はres/values/colors.xmlになければなりません。使用法:このヘッダが必要なテキストビューで、set style = "@ style/sectionHeader"そのテキストビューでmargin = "15dp"を使用してください –

+0

これは近いですが、annieの答え:textStyleの太字のスタイルのように少し修正したいと思うでしょう。 paddingLeftは4ではなく8dpになり、2の代わりに1dpの描画可能な高さになります。また、8dpのpaddingBottomを追加します。 – joepetrakovich

2

私はそれがどのスタイルであるかは分かりませんが、環境設定アプリケーションもこれを使用しています(または非常に似たようなもの)。セクションヘッダーです。また、TextFieldにはtextAllCapsがtrueに設定されています。あなたがtextAllCapsを探している場合は、おそらくSDKのリソースフォルダにそれを見つけることができます:)

+3

FYI、これはAPIレベル14以前でのみ利用可能です。あなたはプログラムですべての大文字に設定するか、文字列リソースファイルに特殊な全大文字の文字列を使用して、Level 14より前にこの作業を行う必要があります。 – annie

+1

14以降ですが、そうです。 – dmon

52

ブランドンの権利。青いスタイルを得るために今はカスタム作業を行う必要があります。これは、新しいデザインガイド全体にわたっているので、いらいらしています。

残念ながら、Widget.Holo.Light.TextView.ListSeparatorはプライベートスタイルなのでカスタムスタイルの親としては参照できません。

しかし、あなただけの灰色の線に興味があるなら、あなたは株式Androidのスタイルのインライン使用することができます。

:これは、少なくとも灰色の線は、すべてのキャップのスタイルにあなたを取得します

style="?android:attr/listSeparatorTextViewStyle" 

enter image description here

ブランドンの答えは、カスタムブルースタイルになります。あなたがリストの区切りのために現在(V15)から正確にAndroidのスタイルをサブクラス化したい場合は

FYI、新しいスタイルに上書きコピーすることができWidget.TextView.ListSeparatorWidget.Holo.Light.TextView.ListSeparatorのためのAndroidで使用される組み合わせたスタイルは、次のとおりです。

<item name="android:background">@drawable/list_section_divider_holo_light</item> 
<item name="android:textAllCaps">true</item> 
<item name="android:layout_width">match_parent</item> 
<item name="android:layout_height">wrap_content</item> 
<item name="android:textStyle">bold</item> 
<item name="android:textColor">?android:textColorSecondary</item> 
<item name="android:textSize">14sp</item> 
<item name="android:gravity">center_vertical</item> 
<item name="android:paddingLeft">8dip</item> 

ドロイドをプライベートなので、自分のディレクトリにコピーする必要があります。

0

私が言うように、線を描くには高さを1dp程度に設定してViewを使用します。背景属性を使用して色を設定することができます

関連する問題