Soru & Cevap

navigation drawer menü ikonunda renkli resim-çözünürlük

26.11.2017 - 11:59

Merhabalar arkadaslar .

Projemde android studionun navigation drawer activity hazır şablonunu kullanıyorum. 

Projedeki hazır listedeki menüyü kendime göre ayarladım fakat menü ikonları konusunda takıldığım iki nokta var.

1- ikonlar için drawerable klasörüne 128*128 çöünürlükte png formatında resimler attım. Şu an sorun görünmüyor fakat her telefonda böylemi görünür. uygulama ikonu için mipmap-hdpi, mipmap-mdpi, mipmap-xdpi ,mipmap-xxdpi vs klasörlerine aynı resmi ayrı ayrı çözünürlükte resimler atıyorum. Bu menü ikonları içinde öyle birşey yapmam gerekirmi ? 

2-Attığım resimler renklide olsa menüde siyahbeyaz görünüyor. ben renkli güzel görünümlü bir menüm olsun istiyorum. Çok kurcaladım ama çözemedim. bunun için ne yapmam gerekiyor.

Hazır kodlar aslında hepiniz biliyorsunuzdur ama ben genede burada karşınızda görmek istersiniz diye ilgili kodlarıda paylaşıyorum.

Yardımlarınız için şimdiden çok teşekkürler

 

 Anasayfa java


public class Anasayfa extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_anasayfa);

        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction ft = fragmentManager.beginTransaction();
        İlkSayfa ilkSayfa = new İlkSayfa();
        ft.replace(R.id.content_frame, ilkSayfa);
        ft.commit();




        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
    }

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        }
        else { super.onBackPressed(); }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.anasayfa, 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;
      //  }

        return super.onOptionsItemSelected(item);
    }

    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_camera) {
            // Handle the camera actio



        } else if (id == R.id.nav_gallery) {

        } else if (id == R.id.nav_slideshow) {

        } else if (id == R.id.nav_manage) {

        } else if (id == R.id.nav_share) {

        } else if (id == R.id.nav_send) {

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}

activity_anasayfa.xml

 

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">
    <include
        layout="@layout/app_bar_anasayfa"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_anasayfa"
        app:menu="@menu/activity_anasayfa_drawer" />

</android.support.v4.widget.DrawerLayout>

 

 

app_bar_anasayfa.xml

 

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="boran.com.emre.Anasayfa">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

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

    <include layout="@layout/content_anasayfa" />

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

 

 

nav_header_anasayfa.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="@dimen/nav_header_height"
    android:background="@drawable/side_nav_bar"
    android:gravity="bottom"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        app:srcCompat="@android:drawable/sym_def_app_icon" />

</LinearLayout>

 

activity_anasayfa_draver.xml

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_camera"
            android:icon="@android:drawable/btn_star_big_on"
            android:title="Bana Özel" />
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/shopping"
            android:title="Sepetim" />
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/category"
            android:title="Kategoriler" />
        <item
            android:id="@+id/nav_manage"
            android:icon="@drawable/ic_menu_manage"
            android:title="Ayarlar" />
        <item
            android:id="@+id/nav_help"
            android:icon="@drawable/info"
            android:title="Yardım" />
    </group>

    <item android:title="Bize dair...">
        <menu>
            <item
                android:id="@+id/nav_share"
                android:icon="@drawable/about"
                android:title="Hakkında"
                />
            <item
                android:id="@+id/nav_send"
                android:icon="@drawable/cccontact"
                android:title="İletişim" />
        </menu>
    </item>

</menu>

 

content_anasayfa.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="boran.com.emre.Anasayfa"
    tools:showIn="@layout/app_bar_anasayfa">

</android.support.constraint.ConstraintLayout>

 

 

 

 

 

57 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user Hamza3444
Hamza3444
01.12.2017 - 08:05

Bilal bey gerçekten günlerdir bununla uğraşıyorum ve hiçbir sonuç alamadım.. Eminim basit bir çözümü vardır ama sanırım benim kaçırdığım ayrıntılar var. Birçok yol yöntem denedim ama sonuç alamadım. Bu konuda bana yardımcı olabilirmisiniz acaba ? emreboran@gmail.com adresine mail adresinizi atarsanız size projeyi bir zipleyip gönderiyim birde siz baksanız olurmu. İnanın artık işin içinden çıkamıyorum...

Profile picture for user bilaloz
bilaloz
29.11.2017 - 05:05

Tek tek resim ebadını ayarlamana gerek yok bunun için Android Studio eklentisi veya bu tip siteler var  sen 1 tane resim yüklüyorsun senin için otomatik mipmap klasörü oluşturuyor iyi çalışmalar dilerim 

Profile picture for user bilaloz
bilaloz
29.11.2017 - 05:04

2.Soruna gelirsem attığın resimlerin uzantısından kaynaklanabilir yada navigation drawer ın background renginden iconların xml koduna gelip tint kodundan beyazı seçersen o sorunun ortadan kalkacağını düşünüyorum .