android程式設計實例入門 -Sample改寫分享 (2014/09/16)
此範例為程式碼(04\Sample2)的改寫,利用一個LinearLayout、一個TextView陣例實作GUI界面,並且利用Color物件實作TextView文字(前後景)顏色大小控制範例+TextView文字樣式控制,程式碼如下所示:
package com.jashsample;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
/*
* 透過TextView陣列+Color物件實作TextView文字(前後景)顏色大小控制範例+TextView文字樣式控制
*/
public class MainActivity extends Activity {
TextView[] tv = new TextView[3];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
setContentView(ll);
for(int i=0; i<tv.length; i++)
{
tv[i] = new TextView(this);
tv[i].setText("需要買車子嗎?");
}
tv[0].setTextColor(Color.BLACK);
tv[1].setTextColor(Color.BLUE);
tv[2].setTextColor(Color.RED);
tv[0].setBackgroundColor(Color.WHITE);
tv[1].setBackgroundColor(Color.GRAY);
tv[2].setBackgroundColor(Color.WHITE);
/*
動態改變文字的字體, setTypeface(typeface, style)
其中 typeface 參數可以是:
- Typeface.DEFAULT//默認
- Typeface.DEFAULT_BOLD//默認粗體
- Typeface.MONOSPACE//等寬字體
- Typeface.SANS_SERIF//無襯線字體
- Typeface.SERIF
style 參數可以是:
- Typeface.BOLD//粗體
- Typeface.BOLD_ITALIC//粗斜體
- Typeface.ITALIC
- Typeface.NORMAL//一般
*/
tv[0].setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
tv[1].setTypeface(Typeface.create(Typeface.SERIF, Typeface.ITALIC));
tv[2].setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD));
tv[0].setTextSize(12);
tv[1].setTextSize(14);
tv[2].setTextSize(16);
for(int i=0; i<tv.length; i++)
{
ll.addView(tv[i]);
}
}
public boolean onKeyDown(int keycode, KeyEvent e)//直接在Activity上實作KeyDown事件
{
String str;
switch(keycode)
{
case KeyEvent.KEYCODE_DPAD_UP:
str = "上";
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
str = "下";
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
str = "左";
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
str = "右";
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
str = "中央";
break;
default:
str = "其他按鍵";
}
tv[0].setText("按下" + str + "。");
return true;
}
public boolean onTouchEvent(MotionEvent e)//直接在Activity上實作Touch事件
{
if(e.getAction() == MotionEvent.ACTION_DOWN)//設定在畫面任何地方Touch都改變tv文字
{
tv[0].setText("您好再見");
}
else if(e.getAction() == MotionEvent.ACTION_UP)
{
tv[0].setText("再見您好");
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class SampleTouchListener implements OnTouchListener
{
public boolean onTouch(View v, MotionEvent e)
{
if(e.getAction() == MotionEvent.ACTION_DOWN)
{
tv[0].setText("您好");
}
else if(e.getAction() == MotionEvent.ACTION_UP)
{
tv[0].setText("再見");
}
return true;
}
}
class SampleClickListener implements OnClickListener//按鈕事件反應類別
{
public void onClick(View v)
{
tv[0].setText("謝謝惠顧。");
}
}
}
沒有留言:
張貼留言