2012年04月05日

フォント関連属性を変更する(2)


フォントの影の設定をする
前回はtextstyleとtypefaceを設定しました
textstyleとtypefaceを変更する
今回は
shadowColor 文字の影の色
shadowDx 影をX方向にずらす値
shadowDy 影をY方向にずらす値
shadowRadius 影のぼやけ具合
の設定をしたいと思います
shadowColorを赤に設定しそのほかのパラメータを変更していきたいと思います
main.xmlを以下のように変更しました
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >

    <TextView
    	android:id="@+id/textView1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDx="10" android:shadowDy="10" 
    	 android:shadowRadius="1"/>

    <TextView
    	android:id="@+id/textView2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDy="10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView3"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDx="10"
    	 android:shadowRadius="1"/>

    <TextView
    	android:id="@+id/textView4"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDx="-10" android:shadowDy="-10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView5"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう" android:shadowColor="#f00"
    	 android:shadowDy="-10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView6"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう " android:shadowColor="#f00"
    	 android:shadowDx="-10" 
    	 android:shadowRadius="1"/>
    <TextView
    	android:id="@+id/textView7"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう " android:shadowColor="#f00"
    	 android:shadowDx="5" android:shadowDy="5" 
    	 android:shadowRadius="5"/>
        <TextView
    	android:id="@+id/textView8"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう " android:shadowColor="#f00"
    	 android:shadowDx="5" android:shadowDy="5" 
    	 android:shadowRadius="10"/>
    
</LinearLayout>
結果は以下のようになります
device73.png
影をずらしたりぼかしたりすることで雰囲気が出ます

スポンサードリンク

2012年03月30日

フォント関連属性を変更する(1)


TextViewはフォントなど様々な設定が可能です
それはTextViewがEditTextや、Buttonなどの親クラスとなっていて
TextView単体では使わない属性も定義可能だからです
まぁつまりTextViewはいろんなところで使えるからカスタマイズ項目が多岐にわたってます
ってことですw

フォントに関する属性を変更していきたいと思います

フォント関連属性
属性 効果
text 表示する文字
textSize 表示する文字のサイズ
textStyle 太字、斜体等の文字のスタイル
typeface フォントを指定する
shadowColor 文字の影の色
shadowDx 影をX方向にずらす値
shadowDy 影をY方向にずらす値
shadowRadius 影のぼやけ具合
textScaleX テキストの横方向の拡大率


テキストサイズに関しては以下を参照
文字のサイズを変える

textStyleでは以下の3つが指定できます
種類 効果
normal 標準
bold 太字
italic 斜体


また、これらは“|”で区切ることで“bold|italic”のように複数指定できます

typefaceでは以下の4つが指定できます
種類 効果
normal 標準
sans ゴシック体
serif 明朝体
monospace 等幅のフォント


また、これらとは別に独自のフォントを使用することも可能です
独自フォントの使用法

textstyleとtypefaceを変更する
textstyleとtypefaceの例です
main.xmlを以下のように変更します
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >

    <TextView
    	android:id="@+id/textView1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう normal" android:textStyle="normal"/>

    <TextView
    	android:id="@+id/textView2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう bold" android:textStyle="bold"/>

    <TextView
    	android:id="@+id/textView3"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう italic" android:textStyle="italic"/>

    <TextView
    	android:id="@+id/textView4"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう bold|italic" android:textStyle="bold|italic"/>

    <TextView
    	android:id="@+id/textView5"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう sans" android:typeface="sans"/>

    <TextView
    	android:id="@+id/textView6"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう serif" android:typeface="serif"/>

    <TextView
    	android:id="@+id/textView7"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="123 abc あいう monospace" android:typeface="monospace"/>

</LinearLayout>

device72.png
もちろんボタンなどの文字も同様に変更することができます

スポンサードリンク

2012年03月29日

テキストビューを動的に配置する


動的にとは・・・
動的とはユーザーが何か操作したときや(タッチしたときなど)
何かのタイミング(画面が変化したなど)で
ウィジェットを発生させたり変化させたりすることです

テキストビューというウィジェットを動的に配置する
今回は基礎として画面が生成されるタイミングで
テキストビューを作成してみたいと思います

ちなみにあらかじめ画面に配置しておくことを静的にといいます
(厳密には違うかもしれませんww)
テキストビューを作成する

動的であるためあらかじめ配置するmain.xmlなどのレイアウトには
何も置いておきません
すべてMainActivity.javaの中で作っていきます
MainActivity.java
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
 
public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
        setTitle("MainActivity");
		
		// テキストビューを生成
		TextView text = new TextView(this);
		text.setText("onCriateのタイミングで生成されます");
		
		LinearLayout layout = new LinearLayout(this);
		// レイアウトにテキストビューを追加
		layout.addView(text);

		setContentView(layout);

    }
}

まずTextView text = new TextView(this);で
this(これw)にtextっていうTextViewを作ります
setTextで中に入力する文字を入れます
""で囲むことで直接入力することができます
次に
LinearLayout layout = new LinearLayout(this);
layoutというLiniarLayoutを作ります
layout.addView(text);で作ったlayoutに
textを入れ込みます

最後にsetContentView(layout);で表示させます
device70.png
スポンサードリンク

文字のサイズを変える


文字のサイズを変更するにはsetTextSizeを使用します
これはTextViewだけでなくボタンなどにも使用できます
指定するサイズの単位は“sp”を推奨しています
いろいろな単位
ただし今回はActivity.java内で動的に設定しようと思っているので
単位は"px"となります
例として10と30で描かれたテキストビューと
ボタンを配置したいと思います
今回はテキストビューとボタンだけですが
エディットテキストや他のボタンなど文字列を扱うウィジットでも
同様に文字サイズを変更できます

まずlayoutのmain.xmlにテキストビューとボタンを2つずつ配置します
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >

    <TextView
    	android:id="@+id/textView1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <TextView
    	android:id="@+id/textView2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="TextView" />

    <Button
    	android:id="@+id/button1"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="Button" />

    <Button
    	android:id="@+id/button2"
    	android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:text="Button" />

</LinearLayout>

次にMainActivity.javaを変更します
MainActivity.java
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
        setTitle("MainActivity");
        setContentView(R.layout.main);
        
        //idの割り当て
 		TextView text1 = (TextView) findViewById(R.id.textView1);
 		TextView text2 = (TextView) findViewById(R.id.textView2);

 		Button button1 = (Button) findViewById(R.id.button1);
 		Button button2 = (Button) findViewById(R.id.button2);		
 		
 		//テキスト入力
 		text1.setText("10px");
 		text2.setText("30px");
 		button1.setText("10px");
 		button2.setText("30px");
 		
 		//サイズ指定
 		text1.setTextSize(10);
 		text2.setTextSize(30);
 		button1.setTextSize(10);
 		button2.setTextSize(30); 		
    }
}
まずはfindViewByIdで配置したテキストビューやボタンIdを指定し
変更できるようにします

次にsetTextで表示する文字列を設定

最後にsetTextSizeでサイズを指定しています

表示画面はこのようになります device71.png


なおxmlで指定する場合はこちらw

スポンサードリンク