Your SlideShare is downloading. ×
Android 2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Android 2

142
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
142
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introducing Activity and Intent 1
  • 2. Memory TextView ListView 2 LinearLayout, weight=2 LinearLayout, weight=1
  • 3. How to create xml file Right click (on the folder) 3
  • 4. The menu.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent“ android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="2"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content” android:layout_height="wrap_content“ android:textSize="@dimen/screen_title_size" android:text="@string/menu" android:layout_gravity="center" android:shadowColor="@android:color/white" android:textColor="@color/title_color" /> </LinearLayout> 4
  • 5. The menu.xml cont. <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent“ android:layout_weight="1"> <ListView android:layout_height="wrap_content" android:id="@+id/list_menu" android:layout_width="fill_parent" android:layout_gravity="center_horizontal" android:divider="@drawable/divider" android:listSelector="@drawable/textured"> </ListView> </LinearLayout> </LinearLayout> 5
  • 6. The dimens.xml (in values folder) <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="logo_size">24pt</dimen> <dimen name="version_size">5pt</dimen> <dimen name="version_spacing">3pt</dimen> <dimen name="screen_title_size">16pt</dimen> <dimen name="menu_item_size">16pt</dimen> <dimen name="game_question_size">10pt</dimen> <dimen name="help_text_size">7pt</dimen> <dimen name="help_text_padding">20px</dimen> </resources> 6
  • 7. The colors.xml (in values folder) <?xml version="1.0" encoding="utf-8"?> <resources> <color name="logo_color">#FFFF0F</color> <color name="version_color">#f0f0f0</color> <color name="version_bkgrd">#1a1a48</color> <color name="title_color">#f0f0f0</color> <color name="title_glow">#F00</color> <color name="menu_color">#FFFF0F</color> <color name="menu_glow">#F00</color> <color name="error_color">#F00</color> </resources> 7
  • 8. How to create java file Right click (on the folder) 8
  • 9. How to override a method Right click on the code pane 9
  • 10. How to override a method cont. Select the method to overridem eg, onCreate 10
  • 11. The strings.xml (in values folder) <Resources> …. <string name="menu">Memory</string> <string name="menu_item_settings">Settings</string> <string name="menu_item_play">Play Game</string> <string name="menu_item_scores">View Scores</string> <string name="menu_item_help">Help</string> … </Resources> 11
  • 12. Create ListView from resource ListView menuList = (ListView) findViewById(R.id.list_menu); String[] items = { getResources().getString(R.string.menu_item_play), getResources().getString(R.string.menu_item_scores), getResources().getString(R.string.menu_item_settings), getResources().getString(R.string.menu_item_help) }; ArrayAdapter<String> adapt = new ArrayAdapter<String> (this,R.layout.menu_item, items); menuList.setAdapter(adapt); 12
  • 13. Starting an Activity class public class Memory extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.menu); ListView menuList = (ListView) findViewById(R.id.list_menu); String[] items = { getResources().getString(R.string.menu_item_play), getResources().getString(R.string.menu_item_scores), getResources().getString(R.string.menu_item_settings), getResources().getString(R.string.menu_item_help) }; ArrayAdapter<String> adapt = new ArrayAdapter<String>(this,R.layout.menu_item, items); menuList.setAdapter(adapt); menuList.setSelection(-1); 13
  • 14. Starting an Activity class menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) { // Note: if the list was built "by hand" the id could be used. // As-is, though, each item has the same id TextView textView = (TextView) itemClicked; String strText = textView.getText().toString(); if (strText.equalsIgnoreCase( getResources().getString(R.string.menu_item_play))) { startActivity(new Intent(Memory.this, MemoryPlayGame.class)); } else if (strText.equalsIgnoreCase(getResources().getString(R.string.menu_item_help))) { // startActivity(new Intent(Memory.this, MemoryHelp.class)); } } }); } } 14
  • 15. Include the Activity in the manifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.plearn" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Memory" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".PlayGame" android:label="@string/app_name"> </activity> </application> </manifest> 15
  • 16. Introducing Graphics 16
  • 17. Using View to draw graphics public class GraphicsExample extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new ViewGraphics(this)); } class ViewGraphics extends View{ public ViewGraphics(Context context){ super(context); } public void onDraw(Canvas canvas){ // canvas to draw on } } } 17
  • 18. Paint contains drawing properties Paint mPaint=new Paint(); // Paint contains properties to use when drawing Typeface mTypeFace; public ViewGraphics(Context context){ super(context); mPaint.setStrokeWidth(3); mPaint.setStrokeCap(Paint.Cap.ROUND); mPaint.setTextSize(30); mPaint.setTypeface(Typeface.create(Typeface.SERIF, Typeface.BOLD_ITALIC)); mFace = Typeface.createFromAsset(getContext().getAssets(), "fonts/gigi.ttf"); //copy a font file in to Assets/fonts folder } 18
  • 19. Drawing primitives in onDraw() public void onDraw(Canvas canvas){ canvas.drawColor(Color.WHITE); mPaint.setColor(Color.BLUE); canvas.drawText(“Android Graphics", 10, 70, mPaint); mPaint.setStyle(Style.STROKE); float x1=100, y1=200, x2=x1+170, y2=y1+150; //top-left, bottomright canvas.drawRect(x1,y1,x2,y2, mPaint); //RectF : Rectangle //with flaoting number canvas.drawLine(x1,x2,y1,y2, mPaint); mPaint.setColor(Color.MAGENTA); canvas.drawOval(new RectF(x1,y1,x2,y2), mPaint); 19 }
  • 20. Drawing primitives cont. mPaint.setStyle(Style.FILL); canvas.drawArc(new RectF(x1,y1,x2,y2), 90, 100, true, mPaint); (start angle, num angle, use radius) mPaint.setTypeface(mFace); mPaint.setColor(Color.BLACK); mPaint.setTextSize(40); canvas.drawText("Custom Fontface from assets", 10, 150, mPaint); // Draw a Drawable (image file) Drawable mDrawable = mContext.getResources().getDrawable(R.drawable.cherry); mDrawable.setBounds(new Rect(100, 400, 250, 550)); mDrawable.draw(canvas); 20
  • 21. The onTouchEvent The onTouchEvent method occurred when the user touch the screen. The (getX(), getY()) is the coordinate (x,y) axis where the screen is touched. public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event); float x = event.getX(); float y = event.getY(); return true; } 21
  • 22. The PlayGame Activity public class PlayGame extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); GameView gameView = new GameView(this); setContentView(gameView); } } 22
  • 23. The PlayGame Activity cont. public class PlayGame extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); GameView gameView = new GameView(this); setContentView(gameView); } } class GameView extends View { public GameView(Context context){ } public void onDraw(Canvas canvas) { } public boolean onTouchEvent(MotionEvent event) { } } 23
  • 24. Assignment 6 1. Implement the graphic primitives in the onDraw() method of the PlayGame Activity. 2. Implement the TouchEvent method to show the coordinate (x,y) using the Toast.makeText(). 24