trucos theme secundario personalizado para movil menus mas leer divi color cambiar java android user-interface material-design navigation-drawer

java - theme - trucos divi



Cómo cambiar el color del icono de hamburguesa en el cajón de navegación de diseño de materiales (12)

1.En Color.xml. <color name="hamburgerBlack">#000000</color>

2.En style.xml.

<style name="DrawerIcon" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="color">@color/hamburgerBlack</item> </style>

3. Luego, su clase de tema principal (nombre de archivo style.xml). Tengo "AppTheme".

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="drawerArrowStyle">@style/DrawerIcon</item> </style>

Estoy siguiendo este ejemplo

http://www.androidhive.info/2015/04/android-getting-started-with-material-design/

y en este ejemplo muestra el icono de hamburguesa en blanco, quiero personalizarlo y hacerlo en negro, pero no puedo encontrar nada sobre cómo cambiarlo, ¿alguien puede decir cómo personalizarlo?

Manifiesto

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="info.androidhive.materialdesign" > <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/MyMaterialTheme" > <activity android:name=".activity.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

estilo

<resources> <style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> </style> <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="homeAsUpIndicator">@drawable/hamburger</item> </style> </resources>

Actividad principal

public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener { private static String TAG = MainActivity.class.getSimpleName(); private Toolbar mToolbar; private FragmentDrawer drawerFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowHomeEnabled(true); drawerFragment = (FragmentDrawer) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer); drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar); drawerFragment.setDrawerListener(this); // display the first navigation drawer view on app launch displayView(0); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } if(id == R.id.action_search){ Toast.makeText(getApplicationContext(), "Search action is selected!", Toast.LENGTH_SHORT).show(); return true; } return super.onOptionsItemSelected(item); } @Override public void onDrawerItemSelected(View view, int position) { displayView(position); } private void displayView(int position) { Fragment fragment = null; String title = getString(R.string.app_name); switch (position) { case 0: fragment = new HomeFragment(); title = getString(R.string.title_home); break; case 1: fragment = new FriendsFragment(); title = getString(R.string.title_friends); break; case 2: fragment = new MessagesFragment(); title = getString(R.string.title_messages); break; case 3: fragment = new ContactUsFragment(); title = getString(R.string.title_contactus); break; case 4: fragment = new AboutUsFragment(); title = getString(R.string.title_aboutus); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.container_body, fragment); fragmentTransaction.commit(); // set the toolbar title getSupportActionBar().setTitle(title); } }


Anular colorControlNormal también funciona.

<item name="colorControlNormal">@android:color/holo_red_dark</item>


Después de una lucha de 2 horas, esta publicación me ayudó. En el ejemplo de material de Androidhive, cambie el color primario a otro para obtener un nuevo color de barra de acción. Este código a continuación es para obtener la marca de flecha en la barra de acción y hacer texto personalizado. Finalmente entendí que el ícono de flecha estará en los archivos de recursos de appcompat pero el ícono de hamburguesa no estará presente en los recursos. si está presente podemos cambiarlo en tiempo de ejecución

setSupportActionBar(toolbar); final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha); upArrow.setColorFilter(getResources().getColor(R.color.black), PorterDuff.Mode.SRC_ATOP); getSupportActionBar().setHomeAsUpIndicator(upArrow); getSupportActionBar().setTitle(Html.fromHtml("<font color=/"black/">" + "All Addresses" + "</font>")); getSupportActionBar().show();

para cambiar el botón de inicio, seguí la respuesta de @anandsingh.


El icono de hamburguesa está controlado por su acción ActionBarDrawerToggle class. Si está utilizando las bibliotecas de compatibilidad de Android, que es imprescindible como en este momento. Puedes cambiar el color de esta manera:

toggle?.drawerArrowDrawable?.color = ContextCompat.getColor(context, R.color.colorPrimary)


Esto funciona bien cuando configura la aplicación: theme = "@ style / MyMaterialTheme"


Para cambiar el color del icono de hamburguesa, debe abrir la clase "style.xml", luego intente este código:

<style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> </style> <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> </style> <style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle"> <item name="spinBars">true</item> <item name="color">@android:color/black</item> </style>

Así que marque <item name="color">@android:color/black</item> line. Simplemente cambie su color deseado aquí.


Para eso puede proceder de la siguiente manera:

protected ActionBarDrawerToggle drawerToggle; drawerToggle.getDrawerArrowDrawable().setColor(getResources().getColor(R.color.black));


Si desea cambiar el color solo al icono del cajón de navegación, intente esto:

<android.support.design.widget.NavigationView app:itemIconTint="@color/thecolorthatyouwant" />

directamente en tu activity_drawer.xml


hágalo programáticamente esta línea

actionBarDrawerToggle.getDrawerArrowDrawable().setColor(getResources().getColor(R.color.white));


yourProject / res / values ​​/ styles.xml

en el styles.xml agregue:

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorControlNormal">@color/white</item> </style> enter code here :


//----------your own toolbar----------------------------- <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:elevation="4dp" android:padding="1dp" android:background="@color/blue" > </android.support.v7.widget.Toolbar> //-----------Main activity xml, add your own toolbar----------------------------------------------- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.v1technologies.sgcarel.FrameActivity"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> <FrameLayout android:padding="2dp" android:layout_marginTop="70dp" android:id="@+id/frame_frame_activity" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </RelativeLayout> //---- In your activity----------------------- toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); //=========================================================================== @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); int color = Color.parseColor("#334412"); final PorterDuffColorFilter colorFilter = new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP); for (int i = 0; i < toolbar.getChildCount(); i++) { final View v = toolbar.getChildAt(i); if (v instanceof ImageButton) { ((ImageButton) v).setColorFilter(colorFilter); } } return true; }


<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorTransparent"

eliminar temas también

android:theme="@style/AppThemeNoActionBar.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" ***

elimina esto

*** aplicación: popupTheme = "@ style / AppThemeNoActionBar.PopupOverlay">

</android.support.design.widget.AppBarLayout>

finalmente agregue esto

<style name="AppThemeNoActionBar" 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>

A tu principal hemo

<item name="colorControlNormal">@color/colorRedTitle</item> </style>