<PreferenceScreen xmlns:Android="http://schemas.Android.com/apk/res/Android">
<PreferenceCategory
Android:title="First Category"
Android:textSize="20px">
<CheckBoxPreference
Android:title="Checkbox Preference"
Android:defaultValue="false"
Android:summary="This preference can be true or false"
Android:key="checkboxPref" />
</PreferenceCategory>
</PreferenceScreen>
Android:title
フォントサイズをPrefereceCategory
、CheckboxPreference
、およびAndroid:summary
サイズに変更する必要があります。これらのタグにはAndroid:textSize
属性はありません。誰かがこれを取得する方法を教えてもらえますか?
最終的に、1つのレイアウトを渡すだけで問題を解決することができました。多分これは誰かに役立つでしょう。これは私の変更したpreference.xmlです。以下のコードを参照してください。独自のプロパティを設定のタイトルと概要に適用できます。
preference.xml:
<PreferenceScreen xmlns:Android="http://schemas.Android.com/apk/res/Android">
<PreferenceCategory
Android:title="First Category"
Android:textSize="20px"
Android:layout="@layout/mylayout">
<CheckBoxPreference
Android:title="Checkbox Preference"
Android:defaultValue="false"
Android:summary="This preference can be true or false"
Android:key="checkboxPref"
Android:layout="@layout/mylayout"/>
</PreferenceCategory>
</PreferenceScreen>
mylayout.xml:
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView Android:id="@Android:id/title"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="40sp"/>
<TextView Android:id="@Android:id/summary"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="26sp"/>
</LinearLayout>
何か質問があれば私に聞いてください....笑顔を保ちます。これが役立つ場合は、コメントを1つください。
私の場合、praneetlokeによって投稿されたレイアウトにより、ウィジェットは、ウィジェットが関連付けられている設定から消えました。チェックボックス。ウィジェットに必要なid/widget_frameを持つLinearLayoutがあります。 Android 2.3から4.2.2まで。私が行う必要がある唯一の変更は、設定アイコンを含むレイアウトにAndroid:visibility = "gone"を設定することでした。これは、ジンジャーブレッドでは利用できませんでした。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="center_vertical"
Android:minHeight="?android:attr/listPreferredItemHeight"
Android:paddingLeft="8dip"
Android:paddingRight="?android:attr/scrollbarSize" >
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:gravity="center"
Android:minWidth="0dp"
Android:orientation="horizontal"
Android:visibility="gone" >
<ImageView
Android:id="@+Android:id/icon"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:minWidth="48dp"
Android:paddingRight="8dip" />
</LinearLayout>
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:paddingBottom="6dip"
Android:paddingRight="8dip"
Android:paddingTop="6dip" >
<TextView
Android:id="@+Android:id/title"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:ellipsize="Marquee"
Android:fadingEdge="horizontal"
Android:singleLine="true"
Android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
Android:id="@+Android:id/summary"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignLeft="@Android:id/title"
Android:layout_below="@Android:id/title"
Android:maxLines="4"
Android:textAppearance="?android:attr/textAppearanceSmall"
Android:textColor="?android:attr/textColorSecondary" />
</RelativeLayout>
<!-- Preference should place its actual preference widget here. -->
<LinearLayout
Android:id="@+Android:id/widget_frame"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:gravity="center"
Android:minWidth="48dp"
Android:orientation="vertical" />
</LinearLayout>
参照:レイアウトで使用されるデフォルトの寸法はここにあります GrepCode /res/values/dimens.xml 。実際の設定項目のレイアウトはここにあります GrepCode /res/layout/preference_holo.xml 。設定.xmlと呼ばれる非ホロバージョンもあることに注意してください。
ICS以上の場合、これに対するKumarの回答を変更しました。このレイアウトをvalues-v11に配置して、デバイスAPIレベル11以降をターゲットにしました。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView Android:id="@+Android:id/title"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="18dp"
Android:textColor="?android:attr/textColorPrimary"
Android:paddingLeft="8dip"/>
<TextView Android:id="@+Android:id/summary"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="14dp"
Android:textColor="?android:attr/textColorSecondary"
Android:paddingLeft="8dip"/>
</LinearLayout>
実際には、次の場所にあるレイアウトフォルダの特定のプラットフォームで使用されているレイアウトを確認できます。
<Android-sdk>\platforms\Android-<level>\data\res\layout
プリファレンスレイアウトはpreference _プレフィックスで始まります。
これに対する私の答えを見てください: 2行のAndroid PreferenceScreenタイトル 。
必要に応じて、フォント自体を変更することもできます。これを追加するだけです:
Typeface myTypeface = Typeface.createFromAsset(textView.getContext().getAssets(),"fonts/your_font_name.ttf");
if (textView != null) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textView.getContext().getResources().getDimension(R.dimen.text_size_from_dimen));
textView.setTypeface(myTypeface);
}
レイアウトコードのマイナーな改訂。 「@ + Android:id/summary」が原因で、シンボルを解決できません。だから私は「+」記号を削除し、コードは機能します
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView Android:id="@Android:id/title"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="40px"/>
<TextView Android:id="@+Android:id/summary"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:textSize="26px"/>
</LinearLayout>