web-dev-qa-db-ja.com

TextViewにすべてのUnicode文字を表示する

携帯電話のTextViewにすべてのUnicode文字を表示する方法はありますか?

'\ u0279'のような特殊文字を試しましたが、box(デフォルトの文字)のようなものが表示されます。これはl10nとi18nの設定に基づいていますか?

14
zmeda
tv=(TextView)findViewById(R.id.textView1);
Typeface font= Typeface.createFromAsset(getAssets(), "TAU_BHON.TTF");
tv.setTypeface(font); 

あなたの言語をサポートするフォントをassetsフォルダーに配置します。この場合、私はTAU_BHON.TTFを使用しました。

14
sakthi

これは通常、fontが使用されているために発生します。デフォルトのものすべてのUnicode文字をサポートしていない/実装していません、DejaVuSans.ttfのようなフル機能のフォントを使用する必要があります

@sakthiは、問題なく動作するはずのサンプルを示しています。Androidバージョンがサポートしているかどうかを確認してください

13
yeradis

このコードを試してください:

String str = "\u00F6";

System.out.println("new value-" + str);

あなたが得るでしょう:

new value-ö

これがサンプルですAndroid機能をチェックするために作成したプロジェクト:

Javaファイル:

package com.testd;

import Android.app.Activity;
import Android.os.Bundle;
import Android.widget.TextView;

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        String str = "\u00F6";

        TextView tv = (TextView) findViewById(R.id.a);
        tv.setText("sajklasdklfjasdf " + str );
    }
}

XMLファイル:

<?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="@+id/a" Android:layout_width="fill_parent"
        Android:layout_height="wrap_content" Android:text="@string/hello" />
</LinearLayout>

スクリーンショット:

enter image description here

10
mudit