32

XML は次のとおりです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/modal_list_row"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="7.5dp"
    android:orientation="vertical" >

    <TextView
                android:id="@+id/title_text_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:gravity="center"
                android:text="@string/alert_title_small"
                android:textColor="@color/alert_dialog_text_color"
                android:textSize="@dimen/alert_dialog_title_font_size"
                android:textStyle="bold" />

</RelativeLayout>

グラフィカル レイアウトでは太字のテキストが表示されますが、デバイスでは太字ではありません。それはデバイスのことですか、それとも何ですか?

アップデート:

完全な XML を求め続ける人々のために、ここで更新します。シンプルな相対レイアウト。そして、ここにJavaコードがあります:

this.titleTextView.setText(this.modalListState.title);

考慮事項: デバイスの書体が原因でしょうか? 確認するGalaxy S3を持っている人はいますか? 活動スタイルでしょうか。アプリ全体で使用されるものは次のとおりです。

<resources xmlns:android="http://schemas.android.com/apk/res/android">

<!--
    Base application theme, dependent on API level. This theme is replaced
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices.

-->
<style name="AppBaseTheme" parent="android:Theme.Light">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.

    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>

<style name="TransparentActivity" >
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowFullscreen">false</item>
</style>

関連するアクティビティには、TransparentActivity スタイルが使用されます。

4

10 に答える 10

40

さて、私はこの問題に対するばかげた答えを見つけました。デフォルトのフォントではなく、デバイスでカスタム フォントを使用していました。デフォルトのものに切り替えると、すべてが期待どおりに機能しました!

于 2013-06-12T10:47:01.137 に答える
23

1つの方法があり、setTypefaceメソッドを呼び出すことでテキストビューの書体を設定できます...

 textView.setTypeface(null, Typeface.BOLD_ITALIC);
 textView.setTypeface(null, Typeface.BOLD);
 textView.setTypeface(null, Typeface.ITALIC);

また、このリンクを参照してください...

TextView スタイルの設定 (太字または斜体)

于 2013-06-12T05:37:44.757 に答える
10

モバイル デバイスでアプリケーションを実行したときに TextView が太字に変わらないのは、アクティビティで Calligraphy を使用したに違いないためです。したがって、スタイルを太字に変更するには、Java ファイルに次のコードを記述するだけです。

 textView.setTypeface(textView.getTypeface(), Typeface.BOLD);

幸運を

于 2018-04-13T07:46:57.920 に答える
7

ほとんどの答えは正しいです。

いわゆる : SpannableStringも使用できます。

このように使用できます:

String bold = "yes !";
String notBold = "no ";
SpannableString text = new SpannableString ( notBold + bold );
text.setSpan ( new StyleSpan ( Typeface.BOLD ) , notBold.length () , text .length () , 0 );
myTextView.setText ( text , BufferType.SPANNABLE );

SpannableStringの優れている点は、複数のスパンをそれぞれ文字列の異なる部分に適用できることです。お気づきのとおり、文字列の一部にのみボールド体を適用しました (開始インデックスと終了インデックスを指定します)。次のようになります。

いいえ、はい!

メソッドsetSpanでは、適用する SPAN、開始インデックス、終了インデックス、およびフラグ (私は常に 0 を使用します) を特定の順序で指定します。

テキスト サイズの変更 ( RelativeSizeSpanを使用) や色の変更 ( ForegroundColorSpanを使用)など、他のスパンを適用することもできます。

次の方法で実現できるカラー スパンの例を次に示します。

text.setSpan ( new ForegroundColorSpan ( Color.RED) , 0 , notBold .length () , 0 );

これで、文字列の最初の部分 ( noという単語を含む) が赤で表示されます。

于 2013-06-12T06:42:38.417 に答える
3

寸法ファイルで定義されたフォント サイズが、実行中に取得されなかった可能性があります。エミュレーターでアプリを実行していないと思います。

以下を確認して、デバイスのものではないことを確認してください。

  • ターゲット デバイス メトリックの正しい寸法ファイルに対して、フォント サイズが正しく定義されていることを確認します。
  • 一部のデバイスでは、デフォルトのテキスト サイズを変更できます。デバイスの「設定」でデフォルトの文字サイズを確認してください。
  • レイアウトが表示されるアクティビティのマニフェスト ファイルに適用される任意のスタイルまたはテーマ。スタイル/テーマをしばらく削除してみてください。
  • たとえば 24sp の場合は、フォント サイズを偶数にハードコーディングしてみてください。
  • 親ビュー/レイアウトの縮尺プロパティを確認してください。
  • 実行時にフォント スタイルを変更しようとするコードはありません。
于 2013-06-07T23:06:33.160 に答える
2

HTMLタグを使ってみるあなたのstrings.xmlファイルに。これはあなたがそれを行う方法です、android string.xmlのhtmlタグの読み取りの問題

プログラムでそれを行うには、

TextView t = new TextView(mContext);
t.setText(Html.fromHtml("<b>This is bold</b>"));
于 2013-06-12T05:13:57.903 に答える
1

問題に関する詳細情報を収集するために、すべての Java および xml コードを投稿していただけますか?

問題が表示されている TextView にない可能性がありますが、これまでのところ、

android:textStyle="bold"

グラフィックレイアウトで動作するようです。

于 2013-06-12T04:59:48.537 に答える
0

またはすべてのデバイス レイアウトのカスタムテーマを作成します。textviewに設定します。

問題は、テキストが非常に遅くなるため、効果が得られることだと思います。

この問題をテストした場合は、フォント サイズを 40sp に変更して実行するとどうなりますか?

于 2013-06-12T04:51:49.033 に答える