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="#f1f7fa" > <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="50dp" android:gravity="center" /> </RelativeLayout>
res/menu/toolbar_options_menu.xml
<?xml version="1.0" encoding="utf-8"?> <!-- Menu A menu resource defines an application menu (Options Menu, Context Menu, or submenu) that can be inflated with MenuInflater. --> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <!-- android:checkable Boolean. "true" if the item is checkable. android:checked Boolean. "true" if the item is checked by default. --> <item android:id="@+id/red" android:title="Red" android:icon="@drawable/ic_palette_red_36dp" app:showAsAction="always|withText" android:orderInCategory="1" /> <item android:id="@+id/green" android:title="Green" android:icon="@drawable/ic_palette_green_36dp" app:showAsAction="ifRoom|withText" android:orderInCategory="2" /> <item android:id="@+id/blue" android:title="Blue" android:icon="@drawable/ic_palette_blue_36dp" app:showAsAction="ifRoom|withText" android:orderInCategory="3" /> <item android:id="@+id/bold" android:title="Bold Text" app:showAsAction="never" android:orderInCategory="4" android:checkable="true" /> <item android:id="@+id/italic" android:title="Italic Text" app:showAsAction="never" android:orderInCategory="5" android:checkable="true" /> </menu>
res/values/styles.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
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.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; private boolean mBold = false; private boolean mItalic = false; @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 Options Menu CheckBox"); mToolbar.setTitleTextColor(Color.WHITE); // Set support actionbar with toolbar setSupportActionBar(mToolbar); // Change the toolbar background color mToolbar.setBackgroundColor(Color.parseColor("#FFF18BB7")); } @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()){ case R.id.red: // Set the text color to red mTextView.setTextColor(Color.RED); return true; case R.id.green: // Set the text color to green mTextView.setTextColor(Color.GREEN); return true; case R.id.blue: // Set the text color to blue mTextView.setTextColor(Color.BLUE); return true; case R.id.bold: if(item.isChecked()){ // If item already checked then unchecked it item.setChecked(false); mBold = false; }else{ // If item is unchecked then checked it item.setChecked(true); mBold = true; } // Update the text view text style updateTextView(); return true; case R.id.italic: if(item.isChecked()){ // If item already checked then unchecked it item.setChecked(false); mItalic = false; }else { // If item is unchecked then checked it item.setChecked(true); mItalic = true; } // Update the text view text style updateTextView(); return true; default: return super.onOptionsItemSelected(item); } } // Custom method to update the text view text style protected void updateTextView(){ if(mBold && mItalic){ mTextView.setTypeface(null, Typeface.BOLD_ITALIC); }else if(mBold && !mItalic){ mTextView.setTypeface(null,Typeface.BOLD); }else if(!mBold && mItalic){ mTextView.setTypeface(null,Typeface.ITALIC); }else { mTextView.setTypeface(null,Typeface.NORMAL); } } }
build.gradle [dependencies]
compile 'com.android.support:appcompat-v7:23.1.1'
Komentar
Posting Komentar