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

スポンサードリンク

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。