In mijn XML-bestand gebruik ik bitmap als volgt
<bitmap
android:src="@drawable/Icon"
android:gravity="center"/>
Hier overschrijdt de afbeeldingsbreedte van het pictogram het scherm.
Ik heb android:width=”100dp” geprobeerd en zo. Maar het werkt niet.
Compleet XML-bestand:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<stroke android:width="3dp" android:color="@color/black" />
<solid android:color="@color/bg_green" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/Icon"
android:gravity="center"/>
</item>
</layer-list>
Hoe kan ik de breedte en hoogte van de bovenstaande bitmap verkleinen?
Antwoord 1, autoriteit 100%
Alleen API 23 of hoger
Gebruik gewoon
<item
android:width="200dp"
android:height="200dp"
android:drawable="@drawable/splash_background"
android:gravity="center" />
in plaats daarvan
<item
android:left="200dp"
android:right="200dp">
<bitmap
android:src="@drawable/splash_background"
android:gravity="center" />
</item>
Antwoord 2, autoriteit 68%
Hoewel er geen breedte- en hoogteparameters zijn voor bitmaps, kunt u de bitmapgrootte instellen met zwaartekracht en de breedte/hoogte van het item.
<item
android:width="230dp"
android:height="70dp">
<bitmap
android:gravity="fill_horizontal|fill_vertical"
android:src="@drawable/screen" />
</item>
Je kunt de breedte en hoogte van het item instellen en de bitmap erin schalen met behulp van zwaartekracht.
Ik weet dat dit een oude vraag is, maar misschien vindt iemand hem nuttig.
WAARSCHUWING:
Zoals al vermeld in opmerkingen, werkt deze methode ALLEEN met API-niveau 23 (Android 6.0) en hoger.
Antwoord 3, autoriteit 33%
Als u de breedte en hoogte wilt verkleinen zodat deze op het scherm passen en u geen exacte afmetingen hoeft in te stellen, kunt u eenvoudig left
en right
op het bovenliggende item. Dat voegt in wezen een marge toe rond de afbeelding, zodat deze minder ruimte in beslag neemt:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="20dp"
android:right="20dp">
<bitmap
android:src="@drawable/Icon"
android:gravity="center" />
</item>
</layer-list>
In het ideale geval moet u echter afbeeldingen van verschillende grootte uploaden voor elke schermresolutie (bijv. hdpi
, xxhdpi
) en dan hoeft u de grootte niet programmatisch in te stellen op allemaal. Je kunt de volledige lijst hierbekijken.
Antwoord 4, autoriteit 26%
deze gebruik ik om mijn mipmap naar mijn startscherm te vergroten.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/colorPrimary"/>
<item
android:width="200dp"
android:height="200dp"
android:gravity="center">
<bitmap
android:gravity="fill"
android:src="@mipmap/ic_launcher"
android:mipMap="true"/>
</item>
</layer-list>
Antwoord 5, autoriteit 20%
Probeer het op deze manier te doen, dit werkte voor mij:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:width="30dp"
android:height="30dp"
android:gravity="center"
>
<bitmap
android:src="@drawable/screen"/>
</item>
</layer-list>
Antwoord 6, autoriteit 7%
Van Android-ontwikkelaarszag ik dat er geen tag voor Bitmap XML waarmee u de grootte kunt wijzigen. U moet dit doen via enkele grafische toepassingen zoals GIMP. Zoals @Kevin Cooper al vertelde, moet je idealiter verschillende bronnensets (met verschillende formaten) maken voor verschillende schermtypen.
Maar u kunt het formaat toch wijzigen met de attributen width en height in ImageView
, in plaats van een bitmap met een andere grootte te maken:
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:scaleType="center"
android:src="@drawable/Icon" />
Als je deze afbeelding op andere plaatsen wilt hergebruiken, kun je een aparte stijl maken en deze opnieuw gebruiken:
// in styles.xml
<style name="Icon24x24">
<item name="android:src">@drawable/Icon</item>
<item name="android:gravity">center</item>
<item name="android:layout_width">24dp</item>
<item name="android:layout_height">24dp</item>
</style>
// in layout.xml
<ImageView style="@style/Icon24x24"/>
Een andere manier van hergebruik is mogelijk het maken van een apart lay-outbestand voor één ImageView
en vervolgens opnemen in andere lay-outs.
Als je deze bitmap
binnen de lagenlijst wilt gebruiken, raadpleeg dan het antwoord van @Kevin Cooper, aangezien hij suggereerde dat het mogelijk is om opvullingen toe te voegen aan layer list item
:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="20dp"
android:right="20dp">
<bitmap
android:src="@drawable/Icon"
android:gravity="center" />
</item>
</layer-list>
En zoals @Nicolo ook al aangaf, vorm API 23, is het mogelijk om android:width
en android:height"
in te stellen op item.
Antwoord 7, autoriteit 4%
Volledige oplossing kopieer en plak en verander het afbeeldingspad
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:gravity="center"
android:width="286dp"
android:height="176dp">
<bitmap
android:src="@drawable/logo"
android:gravity="fill_horizontal|fill_vertical" />
</item>
</layer-list>
Antwoord 8, autoriteit 4%
dus ik heb dat opgelost door te typen:
<item
android:height= "250dp"
android:width= "250dp"
android:gravity="center">
<bitmap
android:gravity="fill_horizontal|fill_vertical"
android:src="@mipmap/ic_launcher"/>
</item>
Antwoord 9, autoriteit 2%
Ik heb het formaat van de afbeelding gewoon handmatig aangepast en het werkt voor mij
Antwoord 10
1.Stap 1: Voeg android:background=
toe aan de Spinner/AppCompatSpinner
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="@dimen/input_height"
android:background="@drawable/shape_drop_down_normal"
/>
- Maak een
shape_drop_down_normal.xml
in/drawable
2A) Als u een ic_spinner_dropdown.png tekenbare-bron heeft voor de Spinner-bitmap
shape_drop_down_normal.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:width="20dp"
android:height="13dp"
android:gravity="end|center_vertical">
<bitmap
android:src="@drawable/ic_spinner_dropdown"
android:gravity="fill"
android:mipMap="true"/>
</item>
</layer-list>
2B) Als u een ic_spinner_dropdown_vector.xml vector tekenbarebron heeft voor de Spinner bitmap
shape_drop_down_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:width="20dp"
android:height="13dp"
android:gravity="end|center_vertical"
android:drawable="@drawable/ic_spinner_dropdown_vector">
</item>
</layer-list>
-
Waarschuwing!
android:width=”20dp”
android:height=”13dp”
in lagenlijst API 23+ vereist,
gebruik
android:left="20dp"
android:right="13dp"
voor lagere API-niveaus, of laat gewoon de breedte- en hoogtebeperkingen weg en zet de dp direct in vectortekenbaar (het werkt perfect voor alle API-niveaus).