activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="0dp" tools:context=".MainActivity" android:background="#fffde9" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Change This Text Style\nUsing Toolbar Menu" android:textSize="35dp" android:gravity="center" android:textStyle="bold" android:fontFamily="sans-serif-condensed" /> </RelativeLayout>
res/menu/toolbar_options_menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <!-- complex menu item to set text style --> <item android:id="@+id/text_style" android:title="Text Style" app:showAsAction="always|withText" android:icon="@drawable/ic_palette_black_36dp" android:orderInCategory="1" > <!-- text style menu's sub menu start from here --> <menu> <!-- first group (text color) of text style sub menu --> <group android:id="@+id/text_color_group" android:checkableBehavior="single" > <!-- text color group's items --> <item android:title="Select Text Color" android:enabled="false" android:checkable="false" /> <item android:id="@+id/red" android:title="Red" android:icon="@drawable/ic_palette_red_36dp" android:onClick="onColorGroupItemClick" /> <item android:id="@+id/green" android:title="Green" android:icon="@drawable/ic_palette_green_36dp" android:onClick="onColorGroupItemClick" /> <item android:id="@+id/blue" android:title="Blue" android:icon="@drawable/ic_palette_blue_36dp" android:onClick="onColorGroupItemClick" /> </group> <!-- second group (text size) of text style sub menu --> <group android:id="@+id/text_size_group" android:checkableBehavior="single" > <!-- text size group's items --> <item android:title="Select Text Size" android:enabled="false" android:checkable="false" /> <item android:id="@+id/large_text" android:title="Large" android:icon="@drawable/ic_text_fields_black_36dp" android:onClick="onSizeGroupItemClick" /> <item android:id="@+id/medium_text" android:title="Medium" android:icon="@drawable/ic_text_fields_black_36dp" android:onClick="onSizeGroupItemClick" /> <item android:id="@+id/small_text" android:title="Small" android:icon="@drawable/ic_text_fields_black_36dp" android:onClick="onSizeGroupItemClick" /> </group> </menu> </item> <!-- bold text menu item --> <item android:id="@+id/text_bold" android:title="Bold Text" app:showAsAction="always|withText" android:icon="@drawable/ic_text_fields_black_36dp" android:orderInCategory="2" /> <!-- normal text menu item --> <item android:id="@+id/text_normal" android:title="Normal Text" app:showAsAction="never|withText" android:icon="@drawable/ic_text_fields_black_36dp" android:orderInCategory="3" /> </menu>
MainActivity.java
package com.cfsuman.me.androidcodesnippets; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.graphics.Typeface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.TypedValue; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.RelativeLayout; import android.widget.TextView; import android.support.v7.widget.Toolbar; public class MainActivity extends AppCompatActivity { private Context mContext; private Activity mActivity; private RelativeLayout mRelativeLayout; private TextView mTextView; private Toolbar mToolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Get the application context mContext = getApplicationContext(); // Get the activity mActivity = MainActivity.this; // Get the widgets reference from XML layout mRelativeLayout = (RelativeLayout) findViewById(R.id.rl); mTextView = (TextView) findViewById(R.id.tv); mToolbar = (Toolbar) findViewById(R.id.toolbar); // Set a title for toolbar mToolbar.setTitle("Android Menu Group Example"); mToolbar.setTitleTextColor(Color.WHITE); // Set support actionbar with toolbar setSupportActionBar(mToolbar); // Change the toolbar background color mToolbar.setBackgroundColor(Color.parseColor("#FFB3AF8F")); } @Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.toolbar_options_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){ switch(item.getItemId()){ // Handle the non group menu items here case R.id.text_bold: // Set the text to bold style mTextView.setTypeface(null, Typeface.BOLD); return true; case R.id.text_normal: // Set the text to normal style mTextView.setTypeface(null, Typeface.NORMAL); return true; default: return super.onOptionsItemSelected(item); } } // To handle menu text color group items click event public void onColorGroupItemClick(MenuItem item){ // If red color selected if(item.getItemId() == R.id.red){ // Checked the red color item item.setChecked(true); // Set the text view text color to red mTextView.setTextColor(Color.RED); }else if (item.getItemId() == R.id.green){ // Checked the green color item item.setChecked(true); // Set the text view text color to green mTextView.setTextColor(Color.GREEN); }else if (item.getItemId() == R.id.blue){ // Checked the blue color item item.setChecked(true); // Set the text view text color to blue mTextView.setTextColor(Color.BLUE); }else { // Do nothing } } // To handle menu text size group items click event public void onSizeGroupItemClick(MenuItem item){ int id = item.getItemId(); // if large text size selected if(id == R.id.large_text){ // Check the item item.setChecked(true); // Set the text view text size to large mTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,50); }else if (id == R.id.medium_text){ // Check the item item.setChecked(true); // Set the text view text size to medium mTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,30); }else if (id == R.id.small_text){ // Check the item item.setChecked(true); // Set the text view text size to large mTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP,20); }else { // Do nothing } } }
Komentar
Posting Komentar