2016-07-27 21 views
12

Ich habe eine Schicht-ListeFalsche Einträge in der Schicht-Liste auf Pre-Lutscher Schlichte

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

<item android:right="2dp" android:left="2dp" android:bottom="2dp" android:top="2dp"> 
    <bitmap 
     android:gravity="center" 
     android:src="@drawable/ic_menu_alert"/> 
</item> 

<item android:height="10dp" android:width="10dp" android:gravity="right|top"> 
    <shape android:shape="oval"> 
     <size android:height="10dp" android:width="10dp"/> 
     <solid android:color="@color/navigation_drawer_notification_red_color"/> 
    </shape> 
</item> 

</layer-list> 

, die das Bild zeigt

image

Auf Lutscher und über alles ist in Ordnung, aber auf Pre -lollipop roten Kreis verlieren alle Größen-und Polsterung Attribute und Bild sieht so aus

enter image description here

Ich suchte etwa 3 Tage nach Lösung und fand nichts. Ich habe versucht, mein eigenes Symbolleistenlayout zu erstellen und auf dieses imagebuuton scaleType = "centerInside" zu setzen, aber es hat nicht geholfen. Könnte jemand mit diesem Problem helfen?

Vielen Dank im Voraus!

+1

Hallo, finden Sie eine Lösung? –

+0

Hallo, irgendeine Lösung? Ich bin auch mit diesem Problem konfrontiert. – Nizam

+0

@Nizam leider nicht ( –

Antwort

3

Am besten die height und width Attribute in layer-list nicht zu erwähnen. Wenn Sie dies als Zeichen verwenden, nehmen wir an, ein ImageView () die Breite und Höhe des ImageView überschreibt die in Artikel/Form genannten).

Sie können top, bottom, left, right verwenden, um Ihre Elemente in der Ebenenliste auszurichten.

Anmerkung: Höhe und Breite Attribute des Elements nur aus der API 23

Hier unterstützt wird, ist ein Arbeitsbeispiel (Getestet in Android 7.0 und Android 4.4):

sample.xml

<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:id="@+id/menu" 
     android:left="16dp" 
     android:right="16dp" 
     android:gravity="center"> 
     <bitmap 
      android:src="@drawable/menu_icon" /> 
    </item> 

    <item 
     android:top="8dp" 
     android:left="56dp" 
     android:right="24dp" 
     android:bottom="42dp"> 
     <shape android:shape="oval"> 
      <solid android:color="@android:color/holo_red_dark"/> 
     </shape> 
    </item> 

</layer-list> 

main.xml

<ImageView 
     android:layout_width="72dp" 
     android:layout_height="72dp" 
     android:src="@drawable/sample" 
     android:scaleType="fitCenter"/> 

Sie können auch wrap_content für Höhe & Breite in Image verwenden.

enter image description here

+0

Danke für deine Antwort :) –

1

So kam ich zu einer praktikablen Lösung. Ich habe eine Layer-Liste in /drawable und /drawable-v21. Die Ebenenliste, die in /drawable-v21 gezeichnet werden kann, enthält einen Vektor, der gezeichnet werden kann. Die Ebenenliste, die in /drawable gezeichnet werden kann, enthält ein .png. Es vereitelt irgendwie den Zweck der Verwendung von Vektor-Zeichen, aber ich musste dies tun, damit es in diesem einen Fall funktioniert.