antonio alcorn gong chen qianqian lin
TRANSCRIPT
![Page 1: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/1.jpg)
Antonio Alcorn Gong Chen
Qianqian Lin
![Page 2: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/2.jpg)
Our Mission:
` To build out POSIT into a more ROBUST, user-friendly application
![Page 3: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/3.jpg)
Our Mission:
To build out POSIT into a more ROBUST, user-friendly application
![Page 4: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/4.jpg)
Refresher:What is Android?
Mobile Application Platform Java basedDifferent applications based on Activity class Applications run in own Unix process in own
virtual machine
![Page 5: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/5.jpg)
About POSIT
` Portable Open Search and Identification Tool
Built on the Google Android platform
Written by Prasanna Gautam, Trishan deLanerolle and Professor Ralph Morelli
![Page 6: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/6.jpg)
Our Main Goals
Build out POSIT and turn it into a Robust Application
Build a better interface with the server Allow the phone to synchronize well with
the server Build a more user-friendly interfaceChange the architecture to MVC Implement interface of ad hoc network
![Page 7: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/7.jpg)
This Week: Tutorials
DatabaseGoogle mapsCameraGalleryGPS
![Page 8: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/8.jpg)
NotePad v.1
Basic activity shell Little functionality
public class Notepadv1 extends ListActivity {... /** Called when the activity is first created. */@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.notepad_list); mDbHelper = new NotesDbAdapter(this); mDbHelper.open(); fillData(); }...
![Page 9: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/9.jpg)
NotePad v.2
Edit note content Save in database
public long createNote(String title, String body) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_TITLE, title); initialValues.put(KEY_BODY, body);
return mDb.insert(DATABASE_TABLE, null, initialValues);}...public boolean onCreateOptionsMenu(Menu menu) { ... menu.add(0, INSERT_ID,0, R.string.menu_insert); return true;}
![Page 10: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/10.jpg)
NotePad v.3
Lifecycle management Interruption doesn't crash, saves state The “android way”
private void createNote() { Intent i = new Intent(this, NoteEdit.class); startActivityForResult(i, ACTIVITY_CREATE); } ...
@Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); fillData(); }
![Page 11: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/11.jpg)
Tutorial: Gallery
public Object getItem(int position) { return position; }
public long getItemId(int position) { return position; }
public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]); i.setLayoutParams(new Gallery.LayoutParams(150, 100)); i.setScaleType(ImageView.ScaleType.FIT_XY); i.setBackgroundResource(mGalleryItemBackground);
return i;
![Page 12: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/12.jpg)
Tutorial: Gallery contpublic class ImageAdapter extends BaseAdapter { int mGalleryItemBackground; private Context mContext;
private Integer[] mImageIds = { R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4 };
![Page 13: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/13.jpg)
Tutorial: Gallery cont public ImageAdapter(Context c) { mContext = c; /*TypedArray a = obtainStyledAttributes(android.R.styleable.Theme); mGalleryItemBackground = a.getResourceId( android.R.styleable.Theme_galleryItemBackground, 0); a.recycle();*/ }
![Page 14: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/14.jpg)
Tutorial: Gallery cont public Object getItem(int position) { return position; }
public long getItemId(int position) { return position; }
public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]); i.setLayoutParams(new Gallery.LayoutParams(150, 100)); i.setScaleType(ImageView.ScaleType.FIT_XY); i.setBackgroundResource(mGalleryItemBackground);
return i;
![Page 15: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/15.jpg)
Tutorial: Map View
Allow user to see map and preset markers
Allow user to create marker for self in current location
![Page 16: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/16.jpg)
Tutorial: Map View cont.
private void setCurrentGpsLocation(Location location) { if (location == null) { mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); mLocationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 15000, 0, this); location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
try { mLongitude = location.getLongitude(); mLatitude = location.getLatitude(); Log.i(TAG, "<long,lat> = <" + mLongitude + "," + mLatitude); Message msg = Message.obtain(); msg.what = UPDATE_LOCATION; HelloMapView.this.updateHandler.sendMessage(msg); } catch (NullPointerException e) { Log.i(TAG, "Null pointer exception " + mLongitude + "," + mLatitude); }}
![Page 17: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/17.jpg)
Tutorial: Map View contprivate void setCurrentGpsLocation(Location location) { if (location == null) { mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); mLocationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 15000, 0, this); location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); }
try { mLongitude = location.getLongitude(); mLatitude = location.getLatitude(); Log.i(TAG, "<long,lat> = <" + mLongitude + "," + mLatitude); Message msg = Message.obtain(); msg.what = UPDATE_LOCATION; HelloMapView.this.updateHandler.sendMessage(msg); } catch (NullPointerException e) { Log.i(TAG, "Null pointer exception " + mLongitude + "," + mLatitude); }}
![Page 18: Antonio Alcorn Gong Chen Qianqian Lin](https://reader036.vdocuments.mx/reader036/viewer/2022062307/5554dfd1b4c9051b6e8b5313/html5/thumbnails/18.jpg)
Next Week:
Camera Tutorial Start looking at POSIT Small tasks in POSITGet acquainted with our phones!