2017-08-10 1 views
3

J'ai récemment "mis à niveau" mon projet Android vers SDK version 26, et maintenant les icônes dans ma barre d'application ressemblent à this (fonctionne sur Android 6.0), bien que l'icône ressemble à this. Je n'ai aucune idée de pourquoi cela se produit, je n'ai rien changé dans le code java ou xml qui semble être lié à cela. Je serais très heureux si quelqu'un posté une solution à ce problème car cela pourrait être un plus gros problème une fois Android 8 est sorti.Les icônes semblent plates dans la barre d'action

build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 26 
    buildToolsVersion '26.0.1' 

    defaultConfig { 
     applicationId "de.jamesbeans.quadrasolve" 
     minSdkVersion 21 
     targetSdkVersion 26 
     versionCode 1 
     versionName "digit1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:26.0.1' 
    compile 'com.android.support:percent:26.0.1' 
} 

partie pertinente de activity_main.xml:

<android.support.v7.widget.Toolbar 
    android:id="@+id/maintoolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="@color/colorPrimaryDark" 
    android:theme="@style/Widget.AppCompat.ActionBar" 
    android:visibility="visible" 
    app:popupTheme="@style/Theme.AppCompat.Light" 
    app:title="QuadraSolve" 
    app:titleTextColor="@android:color/background_light" /> 

partie pertinente de MainActivity.java:

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

...

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.mainmenu, menu); 
    return true; 
} 

mainmenu.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"> 
    <item 
     android:id="@+id/action_history" 
     android:icon="@mipmap/ic_history_48px" 
     android:title="@string/history" 
     app:showAsAction="ifRoom"> 
    </item> 
</menu> 
+0

comportement souhaité: icône recherche problème spécifique normal: icône semble distordu après la mise à niveau version sdk, code: ajouté le code nécessaire –

+0

Avez-vous essayé de placer la hauteur de votre attribut ? –

+0

Je ne pense pas qu'il existe un attribut de taille, au moins je ne peux pas en trouver un [ici] (https://developer.android.com/guide/topics/resources/menu-resource.html). –

Répondre

0

eu le même problème et a trébuché à travers cette réponse qui semble avoir résolu le problème:

https://stackoverflow.com/a/45344964/4579919

La question est que la taille de l'icône est plus grand que prévu. Évidemment, le mécanisme de mise à l'échelle a changé dans SDK 26 et maintenant il conduit à ce bug de l'interface utilisateur. Assurez-vous que les ressources de l'icône de la barre d'outils sont fournies dans les tailles suivantes.