コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Androidアプリ入門 No.03 フォント

今風に書き直した記事がありますので、合わせて参照ください。
blog.webarata3.link

ウィジェット共通

フォント

ここではフォント関連の指定方法を確認する。
2011年4月14日追加
まず、MainActivity.javaを以下のようにする。

package sample.at;

import android.app.Activity;
import android.os.Bundle;

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

そして、先ほどのmain.xmlを以下のように変更する。

<?xml version="1.0" encoding="utf-8"?>
<?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"
    android:background="@color/blue"
    >
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:background="#80ffffff"
    android:textStyle="normal"
    android:typeface="normal"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:background="#80ffffff"
    android:textStyle="bold"
    android:typeface="normal"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:background="#80ffffff"
    android:textStyle="italic"
    android:typeface="normal"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:background="#80ffffff"
    android:textStyle="bold|italic"
    android:typeface="normal"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:background="#80ffffff"
    android:textStyle="normal"
    android:typeface="sans"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:background="#80ffffff"
    android:textStyle="normal"
    android:typeface="serif"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:background="#80ffffff"
    android:textStyle="normal"
    android:typeface="monospace"
    android:textSize="30sp"
    />
</LinearLayout>

実行結果は以下のようになる。

textStyleでは以下が指定できる。textStyleは「|」で複数指定できる。その際ブランクは付けてはいけない。たとえば、「bold|italic」のように指定する。

種類 説明
normal 標準
bold 太字
italic 斜体

typefaceでは以下が指定できる。

種類 説明
normal 標準。
sans ゴシック体のようなフォント
serif 明朝体のようなフォント
monospace 等幅のフォント

またtextSizeでpx,sp、pt、dipのいずれかのフォントサイズが指定できる。サイズについては別途説明をする。
フォントに関しては影をつけることができる。影は以下の属性で指定できる。

種類 説明
shadowColor 影の色。
shadowDx 影をX方向にどれだけずらすか。10.0等を指定する。負の値も指定可能。
shadowDy 影をY方向にどれだけずらすか。10.0等を指定する。負の値も指定可能。
shadowRadius 影の半径?実際に動作させると数値を大きくすると影がぼやけた感じになる。

影の例を以下に挙げる。main.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"
    android:background="#fff"
    >
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDx="10.0"
    android:shadowDy="10.0"
    android:shadowRadius="1.0"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDy="10.0"
    android:shadowRadius="1.0"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDx="10.0"
    android:shadowRadius="1.0"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDx="-10.0"
    android:shadowDy="-10.0"
    android:shadowRadius="1.0"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDy="-10.0"
    android:shadowRadius="1.0"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDx="-10.0"
    android:shadowRadius="1.0"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDx="5.0"
    android:shadowDy="5.0"
    android:shadowRadius="5.0"
    android:textSize="30sp"
    />
<TextView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="こんにちはABCabc123"
    android:textColor="#000"
    android:shadowColor="#f00"
    android:shadowDx="5.0"
    android:shadowDy="5.0"
    android:shadowRadius="10.0"
    android:textSize="30sp"
    />
</LinearLayout>

実行すると以下のようになる。