Click here to load reader
Upload
dolan-adkins
View
33
Download
7
Embed Size (px)
DESCRIPTION
Chapter 4. 手機控制項應用. Component Placement. . 線性佈局共有兩個方向: 垂直( vertical ) 水平( horizontal ) 決定垂直或是水平的屬性為 Orientation android:orientation="vertical". . 線性佈局就是將在 < LinearLayout > 內的元件以線性的方式來呈現. - Example. - PowerPoint PPT Presentation
Citation preview
Component Placement
verticalhorizontalOrientationandroid:orientation="vertical"
< LinearLayout >
- Example
- Example
(res/layout/main.xml)
- android:orientationandroid:layout_widthfill_parentparentwrap_content
- android:layout_heightfill_parentparentwrap_contentandroid:layout_marginview
- android: layout_marginBottomviewandroid: layout_marginLeftviewandroid: layout_marginRightviewandroid: layout_marginTopview
FrameLayoutFrameLayoutFrameLayoutFrameLayout
- This is That is
- Example
-1 (res/layout/main.xml)
- Example
"That is a framelayout example""Thit is"-2(res/layout/main.xml)
- ExampleRelativeLayoutLinearLayout
- Example
android:id="@+id/TextView01"
android:id="@+id/ TextView02" android:layout_below="@id/ TextView01"
android:id="@+id/ TextView03" android:layout_below="@id/ TextView02"
TextView01TextView02TextView01TextView03TextView02(res/layout/main.xml)
- Example
(res/layout/main.xml)TextViewTextViewRelativeLayout
- android:layout_aboveidandroid:layout_alignBaselineidandroid:layout_alignBottomid
- android:layout_alignLeftidandroid:layout_alignParentBottomtrueParentandroid:layout_alignParentLefttrueParent
- android:layout_alignParentRighttrueParentandroid:layout_alignParentToptrueParentandroid:layout_alignRightid
- android:layout_alignTopidandroid:layout_alignWithParentIfMissingtrueidParentandroid:layout_belowid
- android:layout_centerHorizontaltrueParentandroid:layout_centerInParenttrueParentandroid:layout_centerVerticaltrueParentandroid:layout_toLeftOf/toRightOfid/
- Examplerow
- Example
/>
- Exampleandroid:layout_column="0" android:text="\n" android:textSize="22sp" android:layout_marginLeft="60px"/> /> />
-2(res/layout/main.xml)
Text Component
TextViewTextViewXMLMethodXMLMethod XML Method
TextView android:autoLink setAutoLinkMask(int)android:gravity setGravity(int)Viewxyandroid:height setHeight(int)TextViewandroid:width setWidth(int)TextView
TextView android:hint setHint(int)Texthintandroid:lines setLines(int)TextViewLineandroid:maxLength setFilters(InputFilter)TextView
TextView android:password setTransformationMethod(Transformation)Textandroid:text setText(CharSequence)android:textStyle setTypeface(Typeface)
TextView android:textColor setTextColor(ColorStateList)android:textColorLink setLinkTextColor(int)android:textSize setTextSize(float)
TextView Example
TextView Example 1
autoLinkwebautoLinkwebXML(res/layout/main.xml)
TextView Example 2
(res/layout/main.xml) 1(TextView.java)package ncu.bnlab;import android.app.Activity;import android.os.Bundle;import android.text.util.Linkify;import android.view.Gravity;import android.widget.LinearLayout;import android.widget.TextView;
TextView Example 2public class TextViewExample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LinearLayout layout = (LinearLayout)findViewById(R.id.my_layout); TextView tv1 = new TextView(this); tv1.setGravity(Gravity.CENTER); tv1.setAutoLinkMask(Linkify.WEB_URLS); tv1.setText("Google - www.google.com"); layout.addView(tv1); TextView tv2 = new TextView(this); tv2.setGravity(Gravity.CENTER); tv2.setAutoLinkMask(Linkify.WEB_URLS); tv2.setText("Yahoo - www.yahoo.com.tw"); layout.addView(tv2); }} 2(TextView.java)
TextView autoLinkandroid:autoLink setAutoLinkMask(int)noneautoLinkall Linkify.ALLemail Linkify. EMAIL_ADDRESSESEmailphone Linkify. PHONE_NUMBERSweb Linkify.WEB_URLS
AutoCompleteTextView AutoCompleteTextViewTextTaTa
AutoCompleteTextView Example
AutoCompleteTextView Example(res/layout/main.xml)
AutoCompleteTextView Example(TextView.java)package ncu.bnlab;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;public class AutoCompleteTextViewExample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, TAIWAN); AutoCompleteTextView TaiwanCity = (AutoCompleteTextView)findViewById(R.id.city); TaiwanCity.setAdapter(adapter); }private static final String[] TAIWAN = new String[] { "Keelung", "Taipei", "Taoyuan", "Hsinchu", "Miaoli", "Taichung", "Changhua", "Nantou", "Yunlin", "Chiayi", "Tainan", "Kaohsiung", "Pingtung ", "Yilan", "Hualien", "Taitung" };}
Form Component
ButtonButtonlayoutwrap_contentlayout_widthwrap_contentbuttonbuttontextfill_parentlayout_widthfill_parentparent
Button ExampleXMLButton
ImageButtonImageButtonbutton layout:src=""ImageButton
ImageButton Example
(res/layout/main.xml)
RadioButtonRadioButtonRadioButton
RadioButton Example
RadioButton Example
RadioButton Example
-2(res/layout/main.xml)
ToggleButtonToggleButtonButton Off Onandroid:textOnandroid:textOffOnOff
ToggleButton ExampleTextView
ToggleButton Example
-1(res/layout/main.xml)
ToggleButton Example
-2(res/layout/main.xml)
ToggleButton Examplepublic class ToggleButtonExample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView textView01 = (TextView)findViewById(R.id.TextView01); final ToggleButton toggleButton01 = (ToggleButton) findViewById(R.id.ToggleButton01); toggleButton01.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (toggleButton01.isChecked()) { textView01.setText("Now is ON"); } else { textView01.setText("Now is OFF"); } } });-1(ToggleButtonExample.java)
ToggleButton Example final TextView textView02 = (TextView)findViewById(R.id.TextView02); final ToggleButton toggleButton02 = (ToggleButton) findViewById(R.id.ToggleButton02); toggleButton02.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (toggleButton02.isChecked()) { textView02.setText("Now is ON"); } else { textView02.setText("Now is OFF"); } } }); }-2(ToggleButtonExample.java)toggleButton01toggleButton02onClickisCheck()toggleButtonTextView01TextView02
CheckBoxCheckBoxcheckeduncheckedCheckBox
CheckBox Example
CheckBox Example-1(res/layout/main.xml)
CheckBox Example
-2(res/layout/main.xml)
DatePickerDatePickerbuttonTextViewDatePicker
DatePicker
-1(res/layout/main.xml)
DatePickerpublic class DatePickerExample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final DatePicker datePicker = (DatePicker) findViewById(R.id.DatePicker01); final Button myButton = (Button) findViewById(R.id.Button01); final TextView textView = (TextView) findViewById(R.id.TextView01); myButton.setOnClickListener(new OnClickListener(){ public void onClick(View v) { int year = datePicker.getYear(); int month = datePicker.getMonth() + 1; int day = datePicker.getDayOfMonth(); textView.setText( year + "-" + month + "-" + day ); } }); }}
(DatePickerExample.java)
TimePickerTimePickerAMPM
TimePicker Example (res/layout/main.xml)
TimePicker Examplepublic class TimePickerExample extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TimePicker timePicker = (TimePicker) findViewById(R.id.TimePicker01); final Button myButton = (Button) findViewById(R.id.Button01); final TextView textView = (TextView) findViewById(R.id.TextView01); myButton.setOnClickListener(new OnClickListener(){ public void onClick(View v) { int hour = timePicker.getCurrentHour(); int minute = timePicker.getCurrentMinute(); textView.setText( hour + " : " + minute ); } }); }}(TimePickerExample.java)
EditTextEditTextlayout_widthwrap_contentEditTextfill_parentparent
EditText Example
ProgressBarProgressBarProgressBar
ProgressBar Example(res/layout/main.xml)
styleProgressBar
RatingBarRatingBarRatingBar0.5
RatingBar Example
RatingBar (res/layout/main.xml)
RatingBar Example(RatingBarExample.java)public class RatingBarExample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView textView01 = (TextView) findViewById(R.id.TextView01); final TextView textView02 = (TextView) findViewById(R.id.TextView02); final RatingBar ratingBar01 = (RatingBar) findViewById(R.id.RatingBar01); ratingBar01.setOnRatingBarChangeListener(new OnRatingBarChangeListener(){ public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { textView01.setText(Float.toString(ratingBar01.getRating())); }}); final RatingBar ratingBar02 = (RatingBar) findViewById(R.id.RatingBar02); ratingBar02.setOnRatingBarChangeListener(new OnRatingBarChangeListener(){ public void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) { textView02.setText(Float.toString(ratingBar02.getRating())); }}); }}
Component
AlertDialogAlertDialog
AlertDialog Example-1(AlertDialogExample.java)public class AlertDialogExample extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button button01 = (Button) findViewById(R.id.Button01); final Button button02 = (Button) findViewById(R.id.Button02); button01.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { About(); } }); button02.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { Leave(); } }); } private void About() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("") .setMessage(" Alert Dialog") .show(); }
AlertDialog Example-2(AlertDialogExample.java) private void Leave() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub AlertDialogExample.this.finish(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.cancel(); } }); AlertDialog about_dialog = builder.create(); about_dialog.show(); } }
AlertDialog.Builder - create()AlertDialogsetCancelable(boolean)falsesetIcon(Drawable or int)TitleIconsetTitle(CharSequence or int)Title
AlertDialog.Builder - setMessage(CharSequence or int)setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener) ()setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)()show()AlertDialog
ProgressDialogProgressDialogProgressDialog ProgressDialog ProgressDialog
ProgressDialog Example 1 ProgressDialog
ProgressDialog Example 1(AlertDialogExample01.java)public class ProgressDialogExample extends Activity { int nowProgressStatus = 0; Handler myHandler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ProgressDialog dialog01 = ProgressDialog.show(this, "", "...", false); Thread thread01 = new Thread(new Runnable() { public void run() { while (nowProgressStatus < 100) { try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } nowProgressStatus+=5; } // While myHandler.post(new Runnable() { public void run() { dialog01.cancel(); } }); } }); thread01.start(); }}
ProgressDialog
ProgressDialog Example 2 ProgressDialog
ProgressDialog Example 2(AlertDialogExample02.java)public class ProgressDialogExample02 extends Activity { int nowProgressStatus = 0; Handler myHandler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ProgressDialog dialog02 = new ProgressDialog(this); dialog02.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); dialog02.setMessage("..."); dialog02.show(); Thread thread02 = new Thread(new Runnable() { public void run() { while (nowProgressStatus < 100) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } nowProgressStatus+=5; myHandler.post(new Runnable() { public void run() { dialog02.setProgress(nowProgressStatus); } }); } // While myHandler.post(new Runnable() { public void run() { dialog02.cancel(); }}); }}); thread02.start(); }}
DatePickerDialogDatePickerDialog
DatePickerDialog Example(DatePickerDialogExample.java)public class DatePickerDialogExample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DatePickerDialog dpd = new DatePickerDialog(this,myOnDateSetListener,2009, 10, 05); dpd.show(); } private DatePickerDialog.OnDateSetListener myOnDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub } };}
DatePickerDialog DatePickerDialogpublic DatePickerDialog (Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)public DatePickerDialog (Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
TimePickerDialogTimePickerDialog
TimePickerDialog Example(TimePickerDialogExample.java)public class TimePickerDialogExample extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TimePickerDialog tpd = new TimePickerDialog(this, myTimeSetListener, 12, 25, false); tpd.show(); } private TimePickerDialog.OnTimeSetListener myTimeSetListener = new TimePickerDialog.OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub } };}
TimePickerDialog TimePickerDialogpublic TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)public TimePickerDialog (Context context, int theme, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)
Menu Component
Options MenuOptions MenumenuIcon MenuMoreExpanded Menu
Options Menu Example 1MenuOptionsMenu
Options Menu Example 1public class OptionsMenu extends Activity { public static final int aboutBtnID = Menu.FIRST; public static final int exitBtnID = Menu.FIRST + 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, aboutBtnID, 0, "About"); menu.add(0, exitBtnID, 0, "Exit"); return true; }
-1(OptionsMenuEX.java)
Options Menu Example 1public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch( item.getItemId() ) { case aboutBtnID: openDialog(); break; case exitBtnID: finish(); break; } return true; } public void openDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("About OptionsMenu"); builder.setTitle("About"); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).show(); }}-2(OptionsMenuEX.java)
Options Menu Example 2
Options Menu Example 2-1(OptionsMenuEX.java)public class OptionsMenu2 extends Activity { public static final int aboutBtnID = Menu.FIRST; public static final int exitBtnID = Menu.FIRST + 1; public static final int searchBtnID = Menu.FIRST + 2; public static final int addBtnID = Menu.FIRST + 3; public static final int playBtnID= Menu.FIRST + 4; public static final int delBtnID = Menu.FIRST + 5; public static final int openBtnID = Menu.FIRST + 6; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, aboutBtnID, 0, "About"); menu.add(0, exitBtnID, 0, "Exit"); menu.add(0, searchBtnID, 0, "Search"); menu.add(0, addBtnID, 0, "Add"); menu.add(0, playBtnID, 0, "Play"); menu.add(0, delBtnID, 0, "Delete"); menu.add(0, openBtnID, 0, "Open"); return true; }
Options Menu Example 2-2(OptionsMenuEX2.java)public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch( item.getItemId() ) { case aboutBtnID: openDialog(); break; case exitBtnID: finish(); break; } return true; } public void openDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("About OptionsMenu"); builder.setTitle("About"); builder.setPositiveButton(OK, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).show(); }}
Options Menu
Options Menu Example 3setIcon()(OptionsMenuEX.java)public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, aboutBtnID, 0, "About").setIcon(R.drawable.icon); menu.add(0, exitBtnID, 0, "Exit").setIcon(R.drawable.icon); return true;}
Context MenuAndroidContext MenuViewContext Menu
Context Menu Example
Context Menu Example(ContextMenuEX.java)public class ContextMenu extends Activity { public String checkedItem = ""; public static final int newBtnID = Menu.FIRST; public static final int openBtnID = Menu.FIRST + 1; public static final int closeBtnID = Menu.FIRST + 2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button fileBtn = (Button)findViewById(R.id.fileBtn); Button editBtn = (Button)findViewById(R.id.editBtn); registerForContextMenu(fileBtn); registerForContextMenu(editBtn); }public void onCreateContextMenu(android.view.ContextMenu conMenu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(conMenu, v, menuInfo); conMenu.setHeaderTitle("Context Menu"); conMenu.add(0, newBtnID, 0, "New").setNumericShortcut('1'); conMenu.add(0, openBtnID, 0, "Open").setCheckable(true); conMenu.add(0, closeBtnID, 0, "Close").setIcon(R.drawable.icon); } public boolean onContextItemSelected(MenuItem item) { super.onContextItemSelected(item); return false; }}
Sub Menu
Sub Menu Example
Sub Menu Examplepublic class SubMenus extends Activity {public String checkedItem = ""; public static final int newBtnID = Menu.FIRST;public static final int openBtnID = Menu.FIRST + 1;public static final int closeBtnID = Menu.FIRST + 2;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Button fileBtn = (Button)findViewById(R.id.fileBtn);Button editBtn = (Button)findViewById(R.id.editBtn);registerForContextMenu(fileBtn);registerForContextMenu(editBtn);}-1(SubMenuEX.java)
Sub Menu Examplepublic void onCreateContextMenu(android.view.ContextMenu conMenu, View v, ContextMenuInfo menuInfo) {super.onCreateContextMenu(conMenu, v, menuInfo);/*conMenu.setHeaderTitle("Context Menu");conMenu.add(0, newBtnID, 0, "New").setNumericShortcut('1'); //conMenu.add(0, openBtnID, 0, "Open").setCheckable(true); //checkboxconMenu.add(0, closeBtnID, 0, "Close").setIcon(R.drawable.icon); //ContextMenuicon*/ SubMenu sub = conMenu.addSubMenu("Submenu");sub.add("Add...");sub.add("Delete...");}public boolean onContextItemSelected(MenuItem item){super.onContextItemSelected(item);return false;}}-2(SubMenuEX.java)
SpinnerSpinnerwidgetSpinner
Spinner Example
Spinner Example-1(res/layout/main.xml)
main.xml
Spinner (res/value/strings.xml)(res/value/arrays.xml)
Spinner Example-1(SpinnerEX.java)package ncu.bnlab.SpinnerExample;import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.Spinner;public class SpinnerEX extends Activity { /** Called when the activity is first created. */ @SuppressWarnings("unchecked")@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Spinner s = (Spinner)findViewById(R.id.spinner); SpinnerJAVAonCreate()
Spinner Example
/* createFromResource */ ArrayAdapter adapter = ArrayAdapter.createFromResource( this, R.array.cards, android.R.layout.simple_spinner_item); /* */ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); /* Adapter */ s.setAdapter(adapter); }}
-2(SpinnerEX.java)
Notifying Component
Toast NotificationService
Toast NotificationStatus Bar Notification
Toast NotificationToastmaketextToastshow()
Toast NotificationToastsetGravity(int, int, int)ToastToast(x-postion)Toast(y-postion)
Toast Notification Example
Toast Notification Example(ToastNotificationEX.java)public class ToastNotification extends Activity{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* makeText */ Context context1 = getApplicationContext(); CharSequence text1 = "Short Toast"; int duration1 = Toast.LENGTH_SHORT; // Toast toast = Toast.makeText(context1, text1, duration1); toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 0); //Toast toast.show(); /* makeText */ Context context2 = getApplicationContext(); CharSequence text2 = "Long Toast"; int duration2 = Toast.LENGTH_LONG; // Toast.makeText(context2, text2, duration2).show(); }}
Status Bar NotificationAndroidIntent
Status Bar NotificationDialog Notification
Status Bar Notification
Status Bar Notification
Status Bar Notification Example
Status Bar Notification Example(StatusBarNotificationEX.java)public class StatusBarNotification extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); int icon = R.drawable.icon; // CharSequence tickerText = "Hello!!!"; // ticker-text long when = System.currentTimeMillis(); // Context context = getApplicationContext(); // CharSequence contentTitle = ""; // CharSequence contentText = ""; // Intent notificationIntent = new Intent(this, StatusBarNotification.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); Notification notification = new Notification(icon, tickerText, when); notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); final int HELLO_ID = 1; mNotificationManager.notify(HELLO_ID, notification); // }}
Dialog Notification
Dialog Notification
Display Component
ImageViewImageView()
ImageView - android:adjustViewBounds setAdjustViewBounds(boolean)ImageViewdrawabletrueandroid:cropToPaddingandroid:maxHeight setMaxHeight(int)
ImageView - android:maxWidth setMaxWidth(int)android:scaleType setScaleType(ImageView.ScaleType)ImageViewandroid:src setImageResource(int)ImageViewandroid:tint setColorFilter(int,PorterDuff.Mode)
ImageView Example
ImageView Example-1(ImageViewEX.java)public class ImageViewEX extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ImageView imageView = new ImageView(this); imageView.setImageResource(R.drawable.christmas); setContentView(imageView); }}
drawableimageView
ListViewAndroid CheckBoxRadioButton ListView
ListView Example
ListView -1(ListViewEX.java)public class ListViewEX extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String[] Data = {"","",""}; ListView listView = new ListView(this); // ListView : // ListView.CHOICE_MODE_SINGLE // ListView.CHOICE_MODE_MULTIPLE listView.setChoiceMode( ListView.CHOICE_MODE_SINGLE ); ArrayAdapter vArrayData = new ArrayAdapter( this , android.R.layout.simple_list_item_single_choice , Data ); // ListView listView.setAdapter( vArrayData ); // ListView ContentView setContentView(listView); }}
ListView Example 2 -2(ListViewEX.java)public class ListViewEX2 extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String[] Data = { "","","" }; ListView listView = this.getListView(); listView.setChoiceMode( ListView.CHOICE_MODE_SINGLE ); // ListView this.setListAdapter( new ArrayAdapter( this , android.R.layout.simple_list_item_single_choice , Data )); }}
GridViewGridView
GridView Example
public class GridViewEX extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); }}
GridView GridView-1(GridViewEX.java)
GridView Examplepublic class ImageAdapter extends BaseAdapter{ private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; }ImageAdapter-1(ImageAdapter.java)
GridView Examplepublic View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; if (convertView == null) { imageView = new ImageView(mContext); imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setPadding(8, 8, 8, 8); } else { imageView = (ImageView) convertView; } imageView.setImageResource(mThumbIds[position]); return imageView; } private Integer[] mThumbIds = { R.drawable.icon, R.drawable.christmas, R.drawable.favorite, R.drawable.ipod };}ImageAdapter-2(ImageAdapter.java)
SurfaceView
handlerViewViewSurfaceViewgetHolder()SurfaceHolderSurfaceHolderCanvas
SurfaceView Example
SurfaceView Examplepublic class SurfaceViewEX extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyView(this)); } // class MyView extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder holder; public MyView(Context context) { super(context); holder = this.getHolder();//Holder holder.addCallback(this); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { }-1(SurfaceViewEX.java)
SurfaceView Example
@Overridepublic void surfaceCreated(SurfaceHolder holder){ new Thread(new MyThread()).start();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder){}//class MyThread implements Runnable{ @Override public void run() { Canvas canvas = holder.lockCanvas(null);// Paint mPaint = new Paint(); mPaint.setColor(Color.BLUE); canvas.drawRect(new RectF(40,60,80,80), mPaint); holder.unlockCanvasAndPost(canvas);// }} }}-2(SurfaceViewEX.java)
WebView
WebviewwebWebkit
WebView Example
WebView Example
WebViewInternetwebAndroidManifest.xmlINTERNETmain.xml(res/layout/main.xml)
WebView Example
(WebViewEX.java)public class WebViewEX extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView webview; webview = (WebView) findViewById(R.id.webview); webview.getSettings().setJavaScriptEnabled(true); webview.loadUrl("http://www.google.com"); }}
MapView
Google MapGoogle Map API
MapView Example
MapView Example
AndroidManifest.xmlGoogle Map APIAndroidManifest.xml
MapView Example
android:apiKeyGoogle(res/layout/main.xml)
MapView Example
(MapViewEX.java)public class MapViewEX extends MapActivity { /** Called when the activity is first created. */ @Override protected boolean isRouteDisplayed() { return false; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MapView mv = (MapView) findViewById(R.id.mapview); MapController controller = (MapController)mv.getController(); GeoPoint p = new GeoPoint((int) (25 * 1000000),(int)(121.5 * 1000000)); controller.animateTo(p); controller.setZoom(15); }}
Customized Component
Customized ComponentAndroidAndroidButtonTextView EditTextListViewCheckBoxRadioButtonAutoCompleteTextViewImageSwitcher TextSwitcherLayout
Customized ComponentOK
Customized ComponentAndroidViewXMLonMeasure()onDraw()onMeasure()100x100on...
Customized ComponentonDraw()Canvas2D3D3DViewSurfaceView
Customized ComponentonMeasure()onMeasure()setMeasuredDimension()
Customized ComponentonMeasure()onMeasure()(widthMeasureSpecheighMeasureSpec)onMeasure()setMeasuredDimension(int width, int height)
After-Class ExerciseLayout
RadioButton
ProgressBar
After-Class ExerciseOptions Menu
ContextMenu?
Toast
StatusBarNotification
ListView
MapViewAndroidManifest.xml
*LayoutLinearLayoutFrameLayoutRelativeLayoutTableLayout****setContentViewmain.xmlres/layout/main.xml****FrameLayoutFrameLayoutFrameLayoutFrameLayout****id**RelativeLayoutidTextView01idTextView02idTextView01Relativeandroid:layout_below="@id/ TextView01"
*******TableLayoutrowcolumnTableLayout**layout_column=""********TextView"Google www.google.com""Yahoo - www.yahoo.com.tw"TextViewautoLink(ex. )*TextViewautoLinkwebautoLinkallphone**findViewByIdxmlLinearLayoutid my_layoutlayoutfindViewByIdxmlidTextViewtv1tv2setMethodlayout.addViewtv1tv2layout
***TAIWANTaipeiTaichungAutoCompleteTextViewTaTAIWANTa*******android:srcdrawableheartlightningstar****RadioButtonRadio GroupRadio Groupandroid:orientationhorizontalRadioButtonRadioButtonandroid:checkedtrueGroupRadioButton*****main.xmlTextViewToggleButtonToggleButtonExample.javafindViewByIdtoggleButton01toggleButton02onClickisCheck()toggleButtonTextView01TextView02********buttonOnClickListenerbuttononClickdatePickertextViewdatePickermonth0~11getMonth()+1*TimePickerAMPMTextView517AM5:17PM17:17**timePicker.getCurrentHour()0~23buttonOnClickListenerclickTimerPickerTextView****ProgressBarPregressBarPregressBarProgressBarXML1. style="?android:attr/progressBarStyleHorizontal"2. style="?android:attr/progressBarStyleSmall" 3. style="?android:attr/progressBarStyle"4. style="?android:attr/progressBarStyleLarge"styleProgressBarstyleProgressBar
****RatingBar3RatingBarTextViewratingBar01ratingBar02OnRatingBarChangeListenerratingtextView01textView02***ButtonButtonAbout()Leave()MethodAlertDialogAlertDialog.Builderbuilderbuilder.set*****builder4.4.1show()DialogAbout()builder".show()"DialogLeave()builderbuilder createshow()******ProgressDialogProgressDialognowProgressStatus100handlerProgressDialogcancelProgressDialogProgressDialog**ProgressDialogsetProgressStyledialog02.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
STYLE_SPINNERProgressDialogSTYLE_HORIZONTALProgressDialogSTYLE_HORIZONTALProgressDialogsetProgress()MethodhandlerserProgress()
**DatePickerDialog2009/11/050-111011myOnDateSetListenerDatePickerDialogSetonDateSet()*public DatePickerDialog (Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)contextDialogcallBacksetyearmonthOfYear0-11dayOfMonthpublic DatePickerDialog (Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)contextDialogthemeDialogthemecallBacksetyearmonthOfYear0-11dayOfMonth
**TimePickerDialog1225OnTimeSetListenerTimePickerDialogSetonTimeSet ()*public TimePickerDialog (Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)contextDialogcallBacksethourOfDayminuteis24HourView24AM/PMpublic TimePickerDialog (Context context, int theme, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)contextDialogthemeDialogthemecallBacksethourOfDay
**onCreateOptionsMenu()XMLJAVAadd()MenuItemMenuItem**MenuItemitemIDonCreateOptionsMenu() add()itemIDadd()groupID, itemID, order, titleGroupIDMenu ItemitemIDMenuItemordertitle
**MenuMenuItemMore IconMenuItem*****Context MenuonCreateContextMenu() onContextItemSelected()onCreateContextMenu()add()Menu ItemXMLregisterForContextMenu()ViewContextMenu******addSubMenu()SubMenuadd()
*******************NotificationNotificationManagerAndroidNotificationManagergetSystemService()NotificationManagernotify()*NotificationNotificationManagerAndroidNotificationManagergetSystemService()NotificationManagernotify()**********ListViewActivityListActivity
listView.setChoiceMode( ListView.CHOICE_MODE_SINGLE )ListViewListView.CHOICE_MODE_SINGLEListView.CHOICE_MODE_MULTIPLE
android.R.layout.simple_list_item_single_choiceCheckBoxandroid.R.layout.simple_list_item_multiple_choiceRadioButton
*ListActivityListView
*ListActivityListView
*ListActivityListView
*GridViewImageAdapterGridView*ImageAdapterBaseAdapterGridView*drawable
****SurfaceView
******Google Map API
***MapActivityMapViewGoogle Map
2.0Google**********