Je suis cet exemple pour créer mon application maintenant j'essaie d'ajouter une image dans ma barre d'outils mais l'image ne s'affiche pas. J'essaie de définir le logo de mon application. Voici le code et la barre d'outils xml. moi quelle est erreur?
toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:local="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:minHeight="?attr/actionBarSize"
Android:background="?attr/colorPrimary"
local:theme="@style/MyMaterialTheme.Base"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@drawable/toolbartitle"
/>
</Android.support.v7.widget.Toolbar>
MainActivity.Java
public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener {
private static String TAG = MainActivity.class.getSimpleName();
private Toolbar mToolbar;
private FragmentDrawer drawerFragment;
private String chng;
private Intent i;
public SearchView searchView;
public SearchManager searchManager;
// Alert Dialog Manager
AlertDialogManager alert = new AlertDialogManager();
// Session Manager Class
SessionManager session;
private String id;
private boolean b;
private String rasa;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
session = new SessionManager(getApplicationContext());
id = getIntent().getStringExtra("id");
System.out.println("MAIN ID : " + id);
/* i=getIntent();
chng=i.getStringExtra("Changes");*/
// Toast.makeText(getApplicationContext(),chng,Toast.LENGTH_LONG).show();
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setDisplayShowTitleEnabled(false);
drawerFragment = (FragmentDrawer)
getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawerLayout),mToolbar);
drawerFragment.setDrawerListener(this);
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;
}
Voici comment ma barre d'outils montre maintenant
à la place, vous pouvez définir votre image comme arrière-plan textview. utilisez Android:background="@drawable/toolbartitle".
et setTitle ("") dans votre code.
votre barre d'outils finale ressemblera à
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:local="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:minHeight="?attr/actionBarSize"
Android:background="@drawable/toolbartitle"
local:theme="@style/MyMaterialTheme.Base"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
</Android.support.v7.widget.Toolbar>
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="@color/color_blue"
app:popupTheme="@style/AppTheme.PopupOverlay">
<ImageView
Android:id="@+id/tv_header_title"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:src="@mipmap/header_title" />
</Android.support.v7.widget.Toolbar>
Vous pouvez définir l'événement du bouton également par cette méthode ...
public static void showToolBar(Toolbar toolbar,
final AppCompatActivity activity) {
activity.setSupportActionBar(toolbar);
activity.getSupportActionBar().setDisplayShowTitleEnabled(false);
@SuppressWarnings("deprecation")
Drawable drawable = activity.getResources().getDrawable(
R.mipmap.back_icon);
drawable.setColorFilter(
activity.getResources().getColor(R.color.color_white),
Android.graphics.PorterDuff.Mode.SRC_ATOP);
activity.getSupportActionBar().setHomeAsUpIndicator(drawable);
toolbar.setBackgroundColor(activity.getResources().getColor(
R.color.color_blue));
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
activity.finish();
}
});
}
Utilisez l’affichage du logo sur la barre d’action.
getSupportActionBar().setLogo(R.drawable.logo);
getSupportActionBar().setDisplayUseLogoEnabled(true);
Vous avez manqué de montrer la source
Android:src="@drawable/yourImage"
si cela ne fonctionne pas, essayez d’ajouter de la largeur et de la hauteur au lieu d’envelopper le contenu.
Android:layout_width="50dp"
Android:layout_height="50dp"
Vous devez définir l'attribut image src plutôt que définir l'arrière-plan d'imageview pouvant être dessiné.
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/toolbartitle"
/>
C'était une erreur de ma part, je vérifiais avec la barre d'outils personnalisée xml, mais j'ai déjà une barre d'outils dans mon activity_main.xml..Espoir que ma réponse aidera aussi les autres
<LinearLayout 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:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
style="@style/MyToolBarStyle.Base"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/toolbartitle"
Android:minHeight="?attr/actionBarSize" />
</LinearLayout>
<Android.support.v4.widget.DrawerLayout
Android:id="@+id/drawerLayout"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<!-- activity view -->
<!-- Framelayout to display Fragments -->
<FrameLayout
Android:id="@+id/container_body"
Android:layout_width="match_parent"
Android:layout_height="match_parent" />
<!-- navigation drawer -->
<fragment
Android:id="@+id/fragment_navigation_drawer"
Android:name="info.androidhive.materialdesign.activity.FragmentDrawer"
Android:layout_width="@dimen/nav_drawer_width"
Android:layout_height="match_parent"
Android:layout_gravity="start"
app:layout="@layout/fragment_navigation_drawer"
tools:layout="@layout/fragment_navigation_drawer" />
</Android.support.v4.widget.DrawerLayout>
</LinearLayout>